3

アイトラッカーから出力されたデータの巨大なファイルを解析するプログラムがあります。生ファイルはテキスト形式で届きますが、データ分析を行うには CSV ファイルが必要です。

私が行っていたことは、Excel でテキスト ファイルを開き、.csv ファイルとして保存してから、パーサーで実行することでした。それは問題なく動作しますが、面倒なので、パーサーの最初に実行するコードを作成したいと思います。これは生のテキスト ファイルを取得して CSV ファイルに変換し、作成したばかりのパーサーでパーサーを実行します。 CSV ファイル。

私が使用しようとしているコードは次のとおりで、ここから変更されています。

txt_file = subjectNum + ".asc"
csv_file = "subject_" + subjectNum + ".csv"
in_txt = csv.reader(open(txt_file, "r"), delimiter = '\t')
out_csv = csv.writer(open(csv_file, 'w'))
out_csv.writerows(in_txt)

これにより、ファイルが正常に生成されますが、パーサーは、Excel で変換を行うときに取得する「手動で生成された」ファイルと同じ方法で処理できません。パーサーはファイルを作成しますが、それらは空です。

また、私のソース テキスト ファイルは 17.8 MB です。Excel を使用して CSV に変換すると、結果のファイルは 16 MB で、237,218 行が含まれます。上記のコードを使用してテキスト ファイルを CSV に変換すると、結果のファイルは 17.8 MB で 236,104 行になります。

上記のコードには、Excel で手動で変換したときに発生する何かが欠けているようです。

4

1 に答える 1

4

ファイルが完全にディスクに書き込まれたことを確認するには、書き込み後にファイルを閉じる必要があります。

また、ファイルは常にバイナリ モード (Python 2) (またはnewline=""モード (Python 3)) で開く必要があります。

with open(txt_file, "rb") as infile, open(csv_file, 'wb') as outfile:
    in_txt = csv.reader(infile, delimiter = '\t')
    out_csv = csv.writer(outfile)
    out_csv.writerows(in_txt)
于 2013-09-30T15:09:31.173 に答える