首页 > 解决方案 > Python读取csv文件,将每一行分配给一个变量

问题描述

目前我在读取数据的格式方面存在问题。该代码不是为每一行返回一个列表,而是返回一个列表,其中每个索引都是一列。

csv 文件如下所示:

2020-08-26 00:00:00,2020-08-27 00:00:00,2020-08-28 00:00:00 
1505,1515,1527

代码是这样的:

    with open("csvfile.csv", "r") as f:
        reader = csv.reader(f, delimiter=",")
        for i, line in enumerate(reader):
            print(line[0].format(i, line))

电流输出:

2020-08-26 00:00:00
1505

期望的输出:

['2020-08-26 00:00:00','2020-08-27 00:00:00','2020-08-28 00:00:00'] 
[1505, 1515, 1527]

标签: pythoncsv

解决方案


试试这个:

import csv

with open("csvfile.csv", "r") as f:
    reader = csv.reader(f, delimiter=",")
    for line in reader:
        print(line)

我们甚至可以使它成为一个单行:

import csv

with open("csvfile.csv", "r") as f:
    [print(line) for line in csv.reader(f, delimiter=",")]

如果你只有这两行并且希望它们中的每一行都在一个变量中,你可以使用:

import csv

with open("csvfile.csv", "r") as f:
    x, y = tuple(csv.reader(f, delimiter=","))
# Use x and y, preferably outside of the `with` statement
# as we can already close the file

推荐阅读