我有用於分析大量的數據(形式的兩個不同文件的代碼需要被用空格隔開的值,它隨後計算相對於這些值之間的差異並將它們寫入另一個文件中)。重複的程序多次(導電的計算和在另一文件中寫入結果)
from itertools import islice
with open('ex_original_1.idl') as f1, open('ex_new_1.idl') as f2:
with open('ex_dif_1.txt', 'w') as f3:
f1 = islice(f1, 905, None) # skip first 905 lines
f2 = islice(f2, 905, None) # skip first 905 lines
for f1_line, f2_line in zip(f1, f2):
f1_vals = map(float, f1_line.strip().split())
f2_vals = map(float, f2_line.strip().split())
for v1, v2 in zip(f1_vals, f2_vals):
try:
result = v1/v2
f3.write(str(result)+"\n")
except ZeroDivisionError: #should there be a value of zero
print("Encountered a value equal to zero in the second file. Skipping...")
continue
雖然它運作良好,對兩個文件(ex_original_1.idl和ex_new_1.idl),我也有相同的類型(〜500)的很多文件。我想多執行一次這個程序,輸出文件應該按邏輯順序命名:ex_dif_1.txt。爲了使事情更有條理,在2種不同類型(ex_original_i和ex_new_i)位於不同的目錄,我還想寫在一個單獨的目錄中的新文件(如果我理解正確,在文件名前我包括所有的路徑文件,是嗎?)。總括來說,我已經是文件:
- ex_original_1,ex_original_2,ex_original_3 ... ex_original_500
- ex_new_1,ex_new_2,ex_new_3 ... ex_original_500
我想獲得:
- ex_dif_1,ex_dif_2,ex_dif_3 ... ex_dif_500
使用這行代碼,只能使用一次。 如果讓另一個單獨的程序多次運行這個程序是合適的,或者應該在這個已有的程序中包含一個命令,那麼應該讚賞一個例子嗎?
希望它是很清晰。先謝謝您的幫助。
是的,費爾位於不同的文件夾中。 ex_original_i和ex_new_i位於單獨的文件夾中。我想計算到另一個文件夾的差異。 – Robert
我已添加編輯! –
對不起,我沒有看到它。我已經按照你的建議寫了(我希望是正確的)。它給出了一個錯誤:max()arg是一個空序列。 我應該問另一個問題,併發布整個書面代碼? – Robert