将 .csv 文件的每一列解析为单个列表 python

ste*_*azy 4 python csv python-2.4

我有以下类型的 csv

a,b,c
1,2,3
4,5,6
7,8,9
Run Code Online (Sandbox Code Playgroud)

我想将此 csv 文件的每一列解析为一个没有列的列表,因此最终结果将是

myList = ["1","4","7","2","5","8","3","6","9"]
Run Code Online (Sandbox Code Playgroud)

我为一列找到了许多解决方案,但我需要灵活才能读取文件的每一列。我使用的是旧版本的 python,所以我不能使用 pandas 库的任何解决方案。

Jea*_*bre 5

您可以完全读取文件,然后读取zip行以转置它们,然后链接结果以展平列表。独立示例(使用字符串列表作为输入):

import csv,itertools

text="""a,b,c
1,2,3
4,5,6
7,8,9
""".splitlines()

myList = list(itertools.chain.from_iterable(zip(*csv.reader(text[1:]))))

print(myList)
Run Code Online (Sandbox Code Playgroud)

结果:

['1', '4', '7', '2', '5', '8', '3', '6', '9']
Run Code Online (Sandbox Code Playgroud)

从一个文件中它会读到:

with open("test.csv") as f:
    cr = csv.reader(f,separator=",")  # comma is by default, but just in case...
    next(cr)  # skip title
    myList = list(itertools.chain.from_iterable(zip(*cr)))
Run Code Online (Sandbox Code Playgroud)