我對python和編碼一般都很陌生,所以對於任何愚蠢的問題都提前抱歉。我的程序需要根據關鍵字'MYLOG'將現有的日誌文件分成幾個* .csv文件(run1,.csv,run2.csv,...)。如果出現關鍵字,則應開始將兩個所需列複製到新文件中,直到關鍵字再次出現。完成後,需要有與關鍵字一樣多的csv文件。如何使用python將日誌文件拆分爲多個csv文件
53.2436 EXP MYLOG: START RUN specs/run03_block_order.csv
53.2589 EXP TextStim: autoDraw = None
53.2589 EXP TextStim: autoDraw = None
55.2257 DATA Keypress: t
57.2412 DATA Keypress: t
59.2406 DATA Keypress: t
61.2400 DATA Keypress: t
63.2393 DATA Keypress: t
...
89.2314 EXP MYLOG: START BLOCK scene [specs/run03_block01.csv]
89.2336 EXP Imported specs/run03_block01.csv as conditions
89.2339 EXP Created sequence: sequential, trialTypes=9
...
[編輯]:每個文件輸出(運行* .CSV)應該是這樣的:
onset type
53.2436 EXP
53.2589 EXP
53.2589 EXP
55.2257 DATA
57.2412 DATA
59.2406 DATA
61.2400 DATA
...
該程序創建儘可能多的運行*。 csv根據需要,但我不能在我的新文件中存儲所需的列。完成後,我所得到的都是空的csv文件。如果我將計數器變量轉換爲== 1,它會創建一個包含所需列的大文件。
再次感謝!
import csv
QUERY = 'MYLOG'
with open('localizer.log', 'rt') as log_input:
i = 0
for line in log_input:
if QUERY in line:
i = i + 1
with open('run' + str(i) + '.csv', 'w') as output:
reader = csv.reader(log_input, delimiter = ' ')
writer = csv.writer(output)
content_column_A = [0]
content_column_B = [1]
for row in reader:
content_A = list(row[j] for j in content_column_A)
content_B = list(row[k] for k in content_column_B)
writer.writerow(content_A)
writer.writerow(content_B)
請描述每個新文件應該是什麼樣子。 –
提供以下信息將會很有用:1.預期的輸出,以及2.實際的輸出或出錯的地方。另外,'counter'變量似乎與這段代碼無關,可能會刪除,以便更容易實現。 – Geekfish