本コードの実施例を次に示します。例えば、下図のように4つのファイルがあるとします(数はいくらでも構わない)。

本コードを実行すると、下図のようなデータを別ファイルへ書き出す仕様です。

■本プログラム
①辞書型のキーと値を同時に取り出す場合:
for file, target in myTarget_dict.items():
②ファイルが存在し、且つ、0バイトでない場合:
if os.path.isfile(file) and os.path.getsize(file) !=0:
③=で分割して右側の値を取得したい場合:
val = row.rsplit("=",1)[1]
④改行コード除去(文字列両端の空白除去)したい場合:
val = val.strip()
import os
def main():
cnt=0
for file, target in myTarget_dict.items():
if os.path.isfile(file) and os.path.getsize(file) !=0:
val=''
with open(file, 'r') as f1:
for row in f1:
if row.find(target) != -1:
val = row.rsplit("=",1)[1]
val = val.strip()
if not val:
val = 'NaN'
with open("out_put.txt", "a") as f2:
f2.write(file[:-4] + target + "=" + str(val) + '\n')
if (target == 'max_principal_stress') and (val != 'NaN'):
if cnt==0:
val1 = val
cnt = 1
else:
if val != 'NaN':
val2 = val
out_data = float(val1) - float(val2)
else:
out_data = float(val1)
with open("out_put.txt", "a") as f2:
f2.write("delta_stress=" + str(out_data) + '\n')
else:
print(file, ' pass')
if __name__ == '__main__':
myTarget_dict = {'zzz_dataA_max.txt':'max_principal_stress',
'zzz_dataB_max.txt':'max_principal_stress',
'zzz_dataA_min.txt':'min_principal_stress',
'zzz_dataB_min.txt':'min_principal_stress',
}
main()
以上
<広告>
リンク