'20/03/21更新:コードを見易く更新しました。
分割対象文字を左側から検索するsplit、右側から検索するrsplit、改行コードを除去するrstripメソッドを使用します。
本記事では、下図のように各行「文字列=数字」となっている。対象となるabcまたはghiを見つけたら「=」で分割して数値をリストへ格納し、最後に和計算してファイルに書き出す仕様です。
下図はプログラム実行の結果です。abc=230とghi=-9の和221が出力されてます。
▼プログラム本体
import os, sys
def make_dict(input_file):
dict = {}
with open(input_file, 'r') as f:
for row in f:
for target in target_list:
if row.find(target) != -1:
print(row)
print(str(row.split("=")))
print(row.split("=")[1])
print(row.split("=")[1].rstrip())
dict[target] = row.split("=")[1].rstrip()
print('dict', dict)
return dict
def main():
my_dict = make_dict(input_file)
my_sum = 0
for key, value in my_dict.items():
my_sum += float(value)
with open(output_file, 'w') as f:
f.write('sum=' + str(my_sum) + '\n')
if __name__ == '__main__':
input_file = 'rawdata.txt'
target_list=['abc', 'ghi']
output_file = 'outdata.txt'
main()
print('finished')
上記プログラムの実行履歴を下図に示します。文字列を分割してリスト化→改行コードの除去→最後に、辞書化してる様子です。
以上
<広告>
リンク