我以列表的形式收集數據並將數據寫入文本文件。在文本文件中的數據看起來像從python中讀取列表中的列表作爲列表的列表
[[123231,2345,888754],[223467,85645]]
我想讀回,並以列表的在我的程序列表中保存。但是當我從文件中執行read()
並嘗試創建一個扁平列表時,它將一切都視爲一個字符串,並且解釋完全改變,並且我無法查詢在Python中作爲普通列表列表閱讀後得到的結果。
有人可以幫我讀取文件並以與列表清單相同的格式存儲嗎?
謝謝!
我以列表的形式收集數據並將數據寫入文本文件。在文本文件中的數據看起來像從python中讀取列表中的列表作爲列表的列表
[[123231,2345,888754],[223467,85645]]
我想讀回,並以列表的在我的程序列表中保存。但是當我從文件中執行read()
並嘗試創建一個扁平列表時,它將一切都視爲一個字符串,並且解釋完全改變,並且我無法查詢在Python中作爲普通列表列表閱讀後得到的結果。
有人可以幫我讀取文件並以與列表清單相同的格式存儲嗎?
謝謝!
這看起來像有效JSON。
因此,你可以簡單地做:
import json
with open(myfilename) as f:
lst = json.load(f)
要保存您的文件 「列表清單」,做
with open(myfilename, "w") as f:
json.dump(lst, f)
你可以只pickle您的數據來代替。要保存它:
>>> import pickle
>>> p= [[123231,2345,888754],[223467,85645]]
>>> with open("data.txt", "wb") as internal_filename:
... pickle.dump(p, internal_filename)
加載它:
>>> with open("data.txt", "rb") as new_filename:
... pp = pickle.load(new_filename)
>>> pp
[[123231, 2345, 888754], [223467, 85645]]
這也是有用的更復雜的對象。你
也可以使用eval
實現這一點,但其他的解決方案可能更好:
# reading a list from a file
f = open('data.txt', 'r')
l = eval(f.read())
# storing a list to a file
outf = open('out','w')
outf.write(str(l))
有時使用eval
是一種不好的做法。欲瞭解更多信息,請查詢this post。
這隻涵蓋數據的讀取,而不是存儲。 – jamylak 2012-04-24 08:44:09
是的你有權利。我更新了我的答案。 – 2012-04-24 08:53:52
確保:
然後,您可以從python文件導入列表。 例如說名單,my_list,在該文件中 mylist.py
如:
# This is the file mylist.py
my_list = [[123231,2345,888754],[223467,85645]]
然後你可以把my_list以Python列表
from mylist import my_list
for item in mylist:
print "item = <", item, ">"
你能不能讓你的問題更乾淨? – Denis 2012-04-24 08:30:47