我以列表列表的形式收集数据并将数据写入文本文件。文本文件中的数据看起来像
[[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)
您也可以使用它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
是一种不好的做法。有关更多信息,请查看此帖子。
你可以只腌制你的数据。要保存它:
>>> 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]]
这对于更复杂的对象也很有用。
确保:
然后,您可以从 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, ">"