使用Python复制CSV文件中的列
我现在想把一个.csv文件中的整列数据复制到另一个新的.csv文件里。听起来很简单,但我总是遇到问题。
import csv
import glob
with open(r"C:\Users\n47-jones\Dropbox\Nevil Programming\test1.csv", "wb") as outfile:
writer = csv.writer(outfile, delimiter=",")
for csvfilename in glob.glob(r"C:\Users\n47-jones\Dropbox\Nevil Programming\testdir\*.csv"):
with open(csvfilename, "rb") as infile:
reader = csv.reader(infile)
for row in reader:
writer.writerow(row[1])
当我把数据输出到新的test1.csv时,row[1]的内容却被拆分成了每个字母。
比如说,原本是:
DATE |
结果变成了:
D | A | T | E
我希望这样说能让你明白。谢谢任何帮助。
Nick
1 个回答
1
write.writerow() 是一个函数,它可以接收一个可迭代的对象,并把它写成 CSV 文件中的一行。这里的“可迭代的对象”指的是可以一个一个取出元素的东西,比如字符串就是一个可迭代的对象,因为它可以逐个输出字符。
所以你遇到的问题是,你给它的是一个字符串,而不是一个列表。如果你想让 CSV 文件只包含一列数据,你需要给它一个只包含一个元素的可迭代对象:
writer.writerow([row[1]])