【发布时间】:2016-07-18 17:43:13
【问题描述】:
我一直试图弄清楚如何获取一个列表并使用它在我的 csv 文件中创建一个新列。我的想法是我有一个 cvs 文件,我已经将每一行的最后一项创建一个列表,将其打乱,然后我需要将它添加到文件的末尾。
我遇到但“认为”我已解决的一些问题是: Python 不会附加字符串列表,所以我转换为 int。 删除列标题并将其重新添加。
到目前为止我所拥有的是:
def fun():
import csv
import random
f = open('CSVFUN.csv')
csv_f = csv.reader(f)
ISI = []
for line in csv_f:
ISI.append(line[4])
ISI = ISI[1:]
random.shuffle(ISI)
delay = [int(i) for i in ISI]
print(delay)
with open('CSVFUN.csv','r') as csvinput:
with open('CSVOUTPUT.csv','w') as csvoutput:
writer = csv.writer(csvoutput, lineterminator='\n')
reader = csv.reader(csvinput)
for row in reader:
if row[0] == 'practicesentence':
writer.writerow(row+['FINALaudioDelay'])
else:
for i in delay:
writer.writerow(row+[delay[i]])
我认为我现在遇到的问题是我的最后一个 else 语句正在遍历我的延迟列表并将列表中的每个元素添加到一行中的每个元素中。所以第 1 项有 8 次延误,第 2 项有 8 次延误,以此类推。
我想要的是第 1 项与第一次延迟一起使用,第 2 项与第二次延迟一起使用,依此类推。
我觉得我犯了某种愚蠢的错误,但我就是想不通它是什么......
【问题讨论】: