「テキストファイルを読み込んで、何か加工を行い、その結果を標準出力に出力する Pythonコード」の雛形を紹介します。
早速ですが、以下になります。
import sys
import os
def convert_lines(lines):
"""データを修正して返す"""
new_lines = []
for line in lines:
# 例として、各行の末尾に "-dummy" を追加する
line_tmp = line.rstrip() + '-dummy'
new_lines.append(line_tmp)
return new_lines
def read_file(file_path):
"""ファイルを読み込んで配列にして返す"""
lines = []
f = open(file_path, 'r')
for line in f:
lines.append(line)
return lines
def main(file_path):
try:
lines = read_file(file_path)
lines_mod = convert_lines(lines)
for line in lines_mod:
print(line)
except:
import traceback
traceback.print_exc()
if __name__ == "__main__":
if len(sys.argv) < 2:
print('Usage: %s 元ファイル' % sys.argv[0])
sys.exit()
file_path = sys.argv[1]
if not os.path.exists(file_path):
print('指定されたファイルが見つかりません')
sys.exit()
main(file_path)
- 引数には、入力となるファイルパスを指定します。
- それほど Python に詳しいわけでもないため、ベストプラクティスな書き方ではないかもしれません。
やっていることは単純です。
- ファイルを1行ずつ読み込み配列にする。
- その配列を1行目から読み込んでいき、何か加工する。
- その結果も配列にする。
- その配列を1行ずつ出力する。
例えば、以下の内容のファイル sample.txt を用意します。
aaaaa
bbbbb
ccccc
ddddd
今回紹介した Python コードを add_dummy.py というファイル名で保存して実行権限を与えます。
$ chmod u+x add_dummy.pysample.txt を引数に指定して実行します。
$ python add_dummy.py sample.txt
aaaaa-dummy
bbbbb-dummy
ccccc-dummy
ddddd-dummy
これは、期待した通りの結果です。
テキストファイルに対して何かしらプログラムで処理したい場合に、今回の Pythonコードを雛形として、必要なコードを追加・修正して利用すると便利だと思います。
※ 私が必要だったので書きました?。




