Eprime は、次のような .txt ファイルを出力します。
*** ヘッダーの開始 *** バージョン持続: 1 レベル名: セッション 件名: 7 セッション: 1 ランダムシード: -1983293234 グループ: 1 Display.RefreshRate: 59.654 *** ヘッダー エンド *** レベル2 *** ログフレーム開始 *** MeansEffectBias: 7 手続き:trialProc アイテムID: 7 バイアス1回答: 1 *** ログフレーム終了 *** レベル2 *** ログフレーム開始 *** 平均効果バイアス: 2 手続き:trialProc アイテムID: 2 バイアス1回答: 0
これを解析して .csv ファイルに書き込みたいのですが、いくつかの行が削除されています。
コロンの前に表示されるテキストをキー、コロンの後のテキストを値とする辞書を作成しようとしました。
{件名: [7, 7]、bias1Answer: [1, 0]、itemID: [7, 2]}
def load_data(ファイル名): データ = {} eprime = open(ファイル名, 'r') eprime の行の場合: 行 = re.sub('\s+', ' ', line).strip().split(':') 試す: データ[行[0]] += 行[1] KeyError を除く: データ[行[0]] = 行[1] eprime.close() データを返す
for line in open(fileName, 'r'): ':' 行の場合: 行 = line.strip().split(':') fullDict[行[0]] = 行[1] fullDictを印刷する
以下のスクリプトはどちらもガベージを生成します。
{'\x00\t\x00M\x00e\x00a\x00n\x00s\x00E\x00f\x00f\x00e\x00c\x00t\x00B\x00i\x00a\x00s\x00': '\x00\x005\x00\r\ x00', '\x00\t\x00B\x00i\x00a\x00s\x002\x00Q\x00.\x00D\x00u\x00r\x00a\x00t\x00i\x00o\x00n\x00E\x00r\x00r\x00o\x00r\ x00': '\x00 \x00-\x009\x009\x009\x009\x009\x009\x00\r\x00'
辞書を設定できれば、次のような csv ファイルに書き込むことができます!!:
件名 itemID ... bias1Answer 7 7 1 7 2 0