Eprime kết quả đầu ra một file .txt như thế này:Phân tích một file txt vào một từ điển để ghi vào tập tin csv
*** Header Start *** VersionPersist: 1 LevelName: Session Subject: 7 Session: 1 RandomSeed: -1983293234 Group: 1 Display.RefreshRate: 59.654 *** Header End *** Level: 2 *** LogFrame Start *** MeansEffectBias: 7 Procedure: trialProc itemID: 7 bias1Answer: 1 *** LogFrame End *** Level: 2 *** LogFrame Start *** MeansEffectBias: 2 Procedure: trialProc itemID: 2 bias1Answer: 0
Tôi muốn phân tích này và viết nó vào một tập tin .csv nhưng với một số dòng đã xóa.
tôi đã cố gắng để tạo ra một từ điển mà mất văn bản xuất hiện trước dấu hai chấm là chìa khóa và văn bản sau khi giá trị:
{subject: [7, 7], bias1Answer : [1, 0], itemID: [7, 2]}
def load_data(filename): data = {} eprime = open(filename, 'r') for line in eprime: rows = re.sub('\s+', ' ', line).strip().split(':') try: data[rows[0]] += rows[1] except KeyError: data[rows[0]] = rows[1] eprime.close() return data
for line in open(fileName, 'r'): if ':' in line: row = line.strip().split(':') fullDict[row[0]] = row[1] print fullDict
cả các kịch bản bên dưới sản phẩm rác :
{'\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'
Nếu tôi có thể thiết lập từ điển, tôi có thể viết nó vào csv tệp sẽ trông giống như thế này !!:
Subject itemID ... bias1Answer 7 7 1 7 2 0
Cảm ơn! Điều này hoạt động hoàn hảo! – user2476665
Tôi không biết về 'codecs' là một công cụ hữu ích! – Akavall