.readlines() 返回空列表

问题描述 投票:0回答:0

编写了生成一些数据的函数后,我想添加保存它的功能。我最初使用以下代码开始,并使用“save=True”运行:

[in]
import csv
... (main body of code - all this works fine)
if save is True:
    print("Saving...")
    with open('dataset.csv', 'a+') as f:
        lines = f.readlines()
        for line in lines:
            linesplit = line.split(",")
            name_in_dataset = linesplit[0] 
            ...

            (... some code for the actual saving process - irrelevant)
            
            print("Data added successfully")

[out]
Saving...

我知道数据集文件包含这个名称并且应该保存在这里,所以我对哪里出了问题有点困惑。我开始分解代码直到达到这个:

[in]
if save is True:
    print("Saving...")
    with open('dataset.csv', 'a+') as f:
        lines = f.readlines()
        print(lines)

[out]
Saving...
[]

不太确定为什么它无法读取这些行?为什么 f.readlines() 只返回那个空白列表??!我之前使用过相同的代码来读取这个文件的行,所以我真的很困惑为什么它现在不起作用。

我尝试在代码中添加一些内容,例如

f.seek(0)
,但这没有什么区别。我还尝试将打开功能更改为
'a'
'r'
但可惜它无法读取这些行。我搜索了很多关于
.readlines()
的帖子,但找不到任何人经历过这个:(我觉得我工作太久了,已经忘记了Python编码的基本原理!

提前致谢<3

编辑: 使用评论中的建议我将代码更改为:

with open('(file path)/dataset.csv', 'r') as f:
     f.seek(0)
     lines = csv.reader(f)
     print(lines)

它返回了:

Saving...
<csv.reader object at 0x7f01282c7f20>
python list csv readlines
© www.soinside.com 2019 - 2024. All rights reserved.