如何从CSV文件加载数据,对其进行操作,并将其写入Python中的另一个CSV

时间:2014-01-21 18:11:24

标签: python csv

我刚刚开始使用Python,并且一直在寻找过去几个小时的答案。我有一个CSV文件,其中列出了所有小写名称作为行。我正在尝试将每个字母的首字母大写并将其保存到新文件中。这是我到目前为止所做的,但我不能让它操纵CSV中的数据。

import csv

input_file = open('file_to_read.csv', 'rb')
output_file = open('file_to_write.csv', 'wb')

reader = csv.reader(input_file)
writer = csv.writer(output_file)

for row in reader:
    data = row.capitalize()
    writer.writerow(data)

input_file.close()
output_file.close()

我得到的错误是:

AttributeError: 'list' object has no attribute 'capitalize'

2 个答案:

答案 0 :(得分:4)

它告诉你实话。 row是一个列表(每列一个元素)。您可以拨打电话,例如row[0].capitalize(),但不能在列表上拨打capitalize(),因为这不是有效的列表操作。

如果要大写行中的所有列,可以执行以下操作:

row = [col.capitalize() for col in row]

假设:

>>> row = ['one','two','three']

这会让你:

>>> row = [col.capitalize() for col in row]
>>> row
['One', 'Two', 'Three']

答案 1 :(得分:0)

capitalize是字符串的方法,但不是列表方法。

使用data = [x.capitalize() for x in row]代替

相关问题