将CSV文件作为列表导入Python时出现问题

2024-09-28 05:19:04 发布

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

我用Beautiful Soup生成了一个名为MasterList的Python列表,我想将这个列表保存为文本或.csv文件,然后导入到其他Python抓取脚本中,作为一个列表,我可以迭代并提供给Beautiful Soup。我不想使用pickle或将生成MaterList的函数导入到其他脚本文件中,因为生成MasterList需要很长时间,所以我只想生成一次并重复使用。所以我用下面的方法保存了MasterList

import csv

ListCsv=csv.writer(open("MasterList.csv","w"))
ListCsv.writerow(MasterList)

文件在我的目录中显示为一个.csv文件,其中填充了正确的信息。但是,当我尝试运行代码时

^{pr2}$

我没有发现任何错误,列表test是空的。也就是说,print(test)命令显示[]。我浏览了很多论坛,尝试了不同的方式导入csv文件保存为一个列表,但没有任何效果。根据我使用的语法和方法,我要么获取并清空列表,要么print(test)显示{}。在

我应该补充一点,我在macosx10.7.5上使用pythonver2.7.3,并且我已经安装了csv模块的最新版本。任何帮助都将不胜感激。在


Tags: 文件csv方法函数test文本脚本列表
1条回答
网友
1楼 · 发布于 2024-09-28 05:19:04

您应该显式关闭file对象,或者最好使用with语句来处理文件,因为它会自动为您关闭文件,否则您实际写入文件的数据可能还没有刷新到文件中。在

演示:

>>> f = open('abc.csv', 'w')
>>> writer = csv.writer(f)
>>> writer.writerow(range(10))
>>> list(csv.reader(open("abc.csv"))) #empty result, nothing flushed to file yet.
[]
>>> f.close()             #close the file object, now the data is flushed to file
>>> list(csv.reader(open("abc.csv")))
[['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']]

最好使用with语句:

^{pr2}$

相关问题 更多 >

    热门问题