将 title() 应用于列



我想用 title() 代码打印 csv 文件的第二列。当我运行此代码片段时,它给出了一个错误。请提供帮助。

import csv
books = csv.reader(open('C:\Users\Data.csv','rb'))
for row in books:
print [r.title(row[1]) for r in row]

错误:

Traceback (most recent call last):
File "C:Usersupdate.py", line 32, in <module>
print [r.title(row[1]) for r in row]
TypeError: title() takes no arguments (1 given)

不要传入参数,并且不能通过对所有列调用title来仅row[1]标题大小写。

要么只对列使用str.title(),要么对所有列使用。要生成一个只有一个元素标题大小写的列表,您必须重新构建列表并替换一个元素:

print row[:1] + [row[1].title()] + row[2:]

或在打印前就地编辑行:

row[1] = row[1].title()
print row[1]

最新更新