我以列表的形式收集数据并将数据写入文本文件。在文本文件中的数据看起来像从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