【发布时间】:2021-02-11 22:54:04
【问题描述】:
我正在尝试读取文件夹中的多个 csv 文件,从每个 csv 文件中提取三列(key_resp.rt、key_resp_4.rt 和 participant)并将这些信息写入一个新的 csv 文件中。我能够在不将结果写入 csv 文件的情况下运行 for 循环。但是使用下面的代码,新的 csv 文件 (sort.csv) 只包含数据字符串的标题,没有真实数据。
我的代码:
import os
import glob
import csv
#path contain the directory of the folder
path = r'C:\Users\Time estimates task\modified psychopy\reading data-2'
extension = 'csv'
os.chdir(path)
csvlist = glob.glob('*.{}'.format(extension))
print(csvlist) #print out the list of csv file names
for file in csvlist:
with open (file,'r') as csvfile:
csv_reader=csv.DictReader(csvfile)
# for line in csv_reader:
# print (line['participant'])
with open('sort.csv','w') as sortfile:
fieldnames=['key_resp.rt','key_resp_4.rt', 'participant']
csv_writer=csv.DictWriter(sortfile,fieldnames=fieldnames,delimiter=',',extrasaction='ignore')
csv_writer.writeheader()
for line in csv_reader:
csv_writer.writerow(line)
【问题讨论】:
-
每当您
open('sort.csv','w')时,它都会重写整个文件。您需要向其附加数据(或在处理所有文件时将其保持打开状态)。 -
我是新手。你介意给我一个附加数据的例子吗 open('sort.csv','w')
-
它在
open()文档中,但是有更好的方法 - 请参阅我发布的答案。
标签: python multithreading csv