【发布时间】:2013-06-08 01:16:20
【问题描述】:
Eprime 输出一个 .txt 文件,如下所示:
*** 标题开始 ***
版本持续:1
级别名称:会话
主题:7
会话:1
随机种子:-1983293234
组:1
显示刷新率:59.654
*** 标题结束 ***
等级:2
*** LogFrame 开始 ***
均值效应偏差:7
程序:trialProc
物品编号:7
偏见1答案:1
*** LogFrame 结束 ***
等级:2
*** LogFrame 开始 ***
均值效应偏差:2
程序:trialProc
物品编号:2
偏见1答案:0
我想解析这个并将其写入一个 .csv 文件,但删除了许多行。
我试图创建一个字典,将出现在冒号之前的文本作为键, 后面的文本作为值:
{subject: [7, 7], bias1Answer : [1, 0], itemID: [7, 2]}
def load_data(文件名):
数据 = {}
eprime = 打开(文件名,'r')
对于 eprim 中的行:
rows = re.sub('\s+', ' ', line).strip().split(':')
尝试:
数据[行[0]] += 行[1]
除了 KeyError:
数据[行[0]] = 行[1]
eprime.close()
返回数据
对于打开的行(文件名,'r'):
如果':'在行:
行 = line.strip().split(':')
fullDict[行[0]] = 行[1]
打印完整字典
以下两个脚本都会产生垃圾:
{'\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
【问题讨论】: