[英]Problems Importing CSV File as a List into Python
我使用Beautiful Soup在名为MasterList
的Python列表中生成了一个URL列表,我想将此列表另存为文本或.csv文件,然后作为列表导入到其他Python抓取脚本中,以进行迭代并馈入Beautiful汤。 我不想使用pickle或将生成MaterList
的函数导入到其他脚本文件中,因为生成MasterList
需要很长时间,所以我只想生成一次并重复使用。 所以我使用以下命令保存了MasterList
import csv
ListCsv=csv.writer(open("MasterList.csv","w"))
ListCsv.writerow(MasterList)
并且该文件在我的目录中显示为.csv文件,其中填充了正确的信息。 但是,当我尝试运行代码时
test = csv.reader(open("MasterList.csv","r"))
test = list(test)
print(test)
我没有任何错误,列表test
为空。 即, print(test)
命令显示[]
。 我到过很多论坛,都尝试过导入csv文件以保存为列表的各种变体,但没有任何效果。 根据我使用的语法和方法,我将获取并清空列表或print(test)
<_csv.reader object at 0x1014c78a0>
显示<_csv.reader object at 0x1014c78a0>
。
我应该补充一点,我在Mac OSX 10.7.5上使用Python Ver 2.7.3,并且已经安装了最新版本的csv模块。 任何帮助将不胜感激。
您应该显式关闭文件对象,或者最好使用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
语句:
with open('abc.csv', 'w') as f:
writer = csv.writer(f)
writer.writerow(range(10))
with open('abc.csv') as f:
reader = csv.reader(f)
print list(reader)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.