我刚刚开始使用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'
答案 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]
代替