私はPythonと一般的なコーディングにはかなり新しくなっていますので、事前にご容赦ください。私のプログラムは、既存のログファイルをキーワード「MYLOG」に基づいていくつかの* .csvファイル(run1、.csv、run2.csv、...)に分割する必要があります。キーワードが表示されたら、キーワードが再び表示されるまで、2つの希望する列を新しいファイルにコピーし始めます。終了したら、キーワードと同じ数の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
...
[EDIT]:次のようになります(* .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に変更すると、目的の列を持つ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