0
我想解析每個類似於threadids的日誌文件。可以配置任意數量的線程。所有線程都寫入相同的日誌文件,我正在解析日誌文件併爲每個線程創建特定的新文件,以便稍後檢查它們。
下面我捕獲列表中的threadids。
下面的代碼是做這項工作,但我覺得這是不高效的。有什麼更快的嗎?更快地解析所有列表元素的文件,並根據列表元素分析到新文件
sThdiD = ["abc", "cde\"efg"]
folderpath = "newdir"
os.system("mkdir " + folderpath)
for line in open(filetoopen):
for i in sThdiD:
if i in line:
open(folderpath+"/"+i+".log","a+").write(line)
保留打開文件的列表,而不是每次在循環中調用打開 – jterrace
有多少個threadids?幾千個同時打開的文件應該不是真正的問題(如果機器沒有被佔用)。 – extraneon
use subprocess.call not os.system;它更安全。你也應該把'open(folderpath +「/」+ i +「.log」,「a +」)。write(line)'改成'open(os.path.join(folderpath,i +「.log」),一個+「)。寫(線)' – Ben