我以列表列表的形式收集数据,并将数据写入文本文件。文本文件中的数据类似于
[[123231,2345,888754],[223467,85645]]
我想把它读回来并存储在我程序中的列表列表中。但是当我从文件中read()
并尝试创建一个平面列表然后它将所有内容都作为一个字符串并且解释完全改变而且我无法查询我在阅读后获得的结果作为python中的正常列表列表
有人可以帮我阅读文件并以与列表列表相同的格式存储吗?
谢谢!
答案 0 :(得分:6)
这看似有效JSON。
所以你可以这样做:
import json
with open(myfilename) as f:
lst = json.load(f)
要将“列表列表”存储在文件中,请执行
with open(myfilename, "w") as f:
json.dump(lst, f)
答案 1 :(得分:1)
您可以改为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]]
这对于更精细的对象也很有用。
答案 2 :(得分:1)
此外,您可以使用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。
答案 3 :(得分:1)
确保:
然后,您可以从python文件中导入列表。 例如,说list,my_list在文件中 mylist.py
E.g:
# 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, ">"