Python初級プログラミング(4)
2023/08/15 |
[Prev] [Next] [Top] , Python [Prev] [Next] |
do one thing and do it well(一つのことをうまくやれ)
Python初級プログラミング(4):目次
標準入力(stdin)からのデータ入力:sys.stdin.readlines(): [目次へ]
import sys list_a = sys.stdin.readlines() # ここでutf-8に変換されている for str_a in list_a: print(str_a, end='') # 行末付加抑止。デフォルトはend='\n'と同じ。 [Readファイル: 031_sample.txt (文字コードはシフトJIS)] 1行目データ 2行目データ,001,A 3行目データ,002,B [リダイレクト入力(<)] >031_sample.py < 031_sample.txt 1行目データ 2行目データ,001,A 3行目データ,002,B [パイプ経由入力(|)] >type 031_sample.txt | 031_sample.py 1行目データ 2行目データ,001,A 3行目データ,002,B 標準出力(stdout)へのデータ出力: [目次へ]
import sys list_a = sys.stdin.readlines() for str_a in list_a: print(str_a.replace(",", "\t"), end='') # \tはタブのエスケープシーケンス [画面出力] >032_sample.py < 031_sample.txt 1行目データ 2行目データ 001 A 3行目データ 002 B [リダイレクトによる出力のファイル化] >032_sample.py < 031_sample.txt > 032_sample.txt テキストファイル入力: [目次へ]
import sys if len(sys.argv) > 1: # コマンドライン引数チェック fname = sys.argv[1] # 入力ファイル名(fname)取得 with open(fname, encoding='euc-jp') as fo: # EUC想定でファイルopen list_a = fo.readlines() # 全行をリストにRead for str_a in list_a: print(str_a, end='') # 表示 else: print("入力ファイル指定無し") [Readファイル: 033_sample.txt (文字コードは日本語EUC)] 1行目データ 2行目データ 001 A 3行目データ 002 B [出力] >033_sample.py 033_sample.txt 1行目データ 2行目データ 001 A 3行目データ 002 B テキストファイル出力: [目次へ]
import sys if len(sys.argv) > 1: # コマンドライン引数チェック fname_i = sys.argv[1] # 入力ファイル名取得 with open(fname_i, encoding='euc-jp') as fo_i: list_a = fo_i.readlines() else: print("入力ファイル指定無し") if len(sys.argv) > 2: # コマンドライン引数チェック fname_o = sys.argv[2] # 出力ファイル名取得 with open(fname_o, 'w') as fo_o: # 上書きモードで文字コードはデフォルトのshift-jis for str_a in list_a: fo_o.write(str_a.replace("\t",",")) # タブをカンマに置換してwrite else: print("出力ファイル指定無し") >034_sample.py 033_sample.txt 034_sample.txt >type 034_sample.txt 1行目データ 2行目データ,001,A 3行目データ,002,B 最後に
|
Notes |
Copyright(C) 2023 Altmo
本HPについて |
[Prev] [Next] [Top] , Python [Prev] [Next] |