在python中从csv行创建列表

2024-05-23 17:52:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件,有两行和多行

import csv

with open('data.csv', 'r') as csv_file:
     csv_reader = csv.reader(csv_file)

     next(csv_reader)

     for row in csv_reader:
         print(row[0])

输出为:

row0line0
row0line1
row0line2
...

是否有一种方法可以进一步将行分隔为单个单元格的列表? 谢谢


Tags: 文件csvinimportfordataaswith
3条回答

据我所知,您的csv文件如下所示:

row0line0
row1line1
...

如果可能的话,我应该重新通信并将其更改为:

row0 line0
row1 line1
...

(在行和行之间添加空格)

然后,您可以将代码更新为下面的代码行,以仅打印行并创建两个列表-一个包含行,另一个包含行:

import csv

with open('data.csv', 'r') as csv_file:

csv_reader = csv.reader(csv_file)

next(csv_reader)
rows = []
lines = []
for item in csv_reader:
    temp = item[0].split(" ")
    rows.append(temp[0])
    lines.append(temp[1])
    print(temp[0])

我的理解是,您要求输出所有数据字段。csv_reader已经将您的行分隔为单个单元格的列表

当前脚本一次读取一行文件,并使用此行打印每行中的第一项:

    for row in csv_reader:
        print(row[0])

打印行[0]只打印csv行中的第一个字段,而不打印该行:

    for row in csv_reader:
        print(row)

将输出字段列表(来自我的示例csv):

['r0v0', 'r0v1', 'r0v2']
['r1v0', 'r1v1', 'r1v2']

如果要以更好的格式打印,可以使用“连接”:

    for row in csv_reader:
        print(", ".join(row))

输出:

r0v0, r0v1, r0v2
r1v0, r1v1, r1v2

我的csv:

r0v0,r0v1,r0v2
r1v0,r1v1,r1v2

如果您的意思是,每一行都将成为列表中的一个元素,并按此方式进行:

with open('data.csv', 'r') as csv_file:
    reader = csv.reader(csv_file)
    data_list = [row[0] for row in reader]

否则,如果要创建每行第一个元素的列表,可以执行以下操作:

with open('data.csv', 'r') as csv_file:
    reader = csv.reader(csv_file)
    row0_list = []
    for row in reader:
      row0_list.append(row[0])

我希望这个解释能解决问题

相关问题 更多 >