[英]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.