使用Python以小写形式读取CSV文件

使用Python以小写形式读取CSV文件,python,csv,python-3.x,map-function,Python,Csv,Python 3.x,Map Function,我正在将一个CSV文件读入一个命名的文件,如下所示: import csv from collections import namedtuple #So we can handle bad CSV files gracefully def unfussy_reader(reader): while True: try: yield next(reader.lower()) # This is a bad row that has

我正在将一个CSV文件读入一个命名的文件,如下所示:

import csv
from collections import namedtuple

#So we can handle bad CSV files gracefully
def unfussy_reader(reader):
    while True:
        try:
            yield next(reader.lower())

        # This is a bad row that has an error in it (csv.Error)
        # Alternately it may be a line that doesn't map to the structure we've been given (TypeError)
        except (csv.Error, TypeError):
            pass

        continue

# Create the CSV reader object
csv_reader = csv.reader(file_stream, delimiter=' ', quotechar='"', escapechar='^')

# Set up the named tuple
csvline = namedtuple('csv_line', 'field1, field2, field3')

# Create the named tuple mapping object
map_to_tuple = map(csvline._make, csv_reader)

for line in unfussy_reader(map_to_tuple):
    # do stuff
这很好,但我的问题是-我希望CSV的所有内容都以小写形式读取。根据,一个简单的lambda可以做到:
map(lambda x:x.lower(),[“A”,“B”,“C”])
但在数据进入元组(因此不可更改)之前,我找不到任何地方放置它

在这个结构(Python 3.5)中有没有一种方法可以做到这一点呢?

这个怎么样:

csv_reader = csv.reader(map(lambda line:line.lower(),file_stream), delimiter=' ', quotechar='"', escapechar='^')

在为流创建CSV读取器之前,可以对流应用
lower
转换

lower_stream = (line.lower() for line in file_stream)
csv_reader = csv.reader(lower_stream, delimiter=' ', quotechar='"', escapechar='^')

下\u流
分配目标周围的括号表示分配目标。它不会用完
文件流
,也不会将所有
文件流
都拉入内存。

csv\u阅读器=…
之前添加一行:
文件流=(文件流中的行的line.lower())
?@bbayles-这很有效,尽管我必须将其分配给某个对象,然后将
csv\u reader=
行更改为指向该对象,而不是
文件流
。把它作为答案贴出来,我会接受的。谢谢