使用Python复制CSV文件中的列

0 投票
1 回答
1219 浏览
提问于 2025-04-17 21:58

我现在想把一个.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]])

撰写回答