我有一个文件(在本例中为“test.csv”)。我想获取此 csv 的所有字段并创建一个包含所有字段的列表。例如我可以这样做:
import csv
def read_csv():
dr = csv.DictReader(open('test.csv', 'r', encoding='utf-8'))
result = []
for r in dr:
for n in r.values():
result+=n
return result
但是,如果 csv 变大,效率似乎非常低。
我尝试过这个:
import csv
def read_csv():
dr = csv.DictReader(open('test.csv', 'r', encoding='utf-8'))
return [n for row in dr for n in row.values()]
但它返回一个列表列表,每个列表包含一行内容,而不是一个包含每一行内容的大列表。
最好的解决方案是什么?
csv 文件示例(注意第一行空白):
w1, w2, w3
w4, w5
最佳答案
由于您仅使用字典的值,因此可以替换 csv.DictReader()
与 csv.reader()
并使用列表理解:
def read_csv():
with open('test.csv') as f:
reader = csv.reader(f)
return [col for row in reader for col in row]
关于python - 如何获取 csv 内容的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46602363/