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