python - 如何获取 csv 内容的列表?

标签 python list csv

我有一个文件(在本例中为“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/

相关文章:

python - 从 csv 文件中读取数据,同时监视文件夹中的更改

python - Numpy 输入/输出 : convert % percentage to float between 0 and 1

python - 捕获远程 Linux 服务器的性能?

list - NoSuchMethodError:将值添加到列表时,在空值上调用了 'add'方法Flutter

list - Protege:如何表达 'not hasNext' ?

javascript - 通过脚本使用Office365 Excel打开CSV

sql-server - 将增量值插入表中

python - 即使您只期望返回一个结果,队列对于多重处理是否有意义?

python - 标识符规范化 : Why is the micro sign converted into the Greek letter mu?

java - 如何获取通用列表实例的特定项目