在csv文件中读取并在python中转换为大写

在csv文件中读取并在python中转换为大写,python,csv,dictionary,Python,Csv,Dictionary,我正在尝试使用csv库读取csv文件。我尝试遍历每一行,但在尝试使用每一行的一些有用函数之前,先转换为大写 import csv reader = csv.DictReader(open('sample.csv', 'rb')) for line in reader: line = line.upper() name = line['Name'] 上面的代码似乎不起作用。尝试将读入的行转换为上限时失败。我可以将读取的csv文件的每一列单独更改为上限(使用字典键),但我希望避免这

我正在尝试使用csv库读取csv文件。我尝试遍历每一行,但在尝试使用每一行的一些有用函数之前,先转换为大写

import csv
reader = csv.DictReader(open('sample.csv', 'rb'))
for line in reader:
    line = line.upper()
    name = line['Name']

上面的代码似乎不起作用。尝试将读入的行转换为上限时失败。我可以将读取的csv文件的每一列单独更改为上限(使用字典键),但我希望避免这种情况,因为字典中有很多键

您可以使用生成器表达式预处理文件对象中的每一行,然后将它们传递给
csv.DictReader
,后者返回dicts的一个iterable:

with open('sample.csv', 'rb') as f:
    header = next(f).strip().split(',')
    reader = csv.DictReader((l.upper() for l in f), fieldnames=header)
    for line in reader:
        name = line['Name']

演示:

您可以使用:

import codes
txt = 'sampole.csv'
with codecs.open(txt, 'r', encoding='utf-8') as f:
    lines = f.readlines()
    lines = [x.upper() for x in lines]
lines

您也可以发布错误信息吗?您使用的是
csv.DictReader
对象,它在您迭代时返回
dict
,而不是
csv.reader
返回的
tuple
dict
tuple
都没有
.upper
方法。您可能想调用该
dict
的一个内容上的
.upper
import codes
txt = 'sampole.csv'
with codecs.open(txt, 'r', encoding='utf-8') as f:
    lines = f.readlines()
    lines = [x.upper() for x in lines]
lines