Python 将列表列表写入文件,然后将其作为列表列表列表从文件中检索
我为这个令人困惑的标题道歉,我自己也很困惑 现在我正在开发一个程序,在这个程序中我创建了一个列表,其中的元素是列表。然后我将每个元素写入一个文件 一个例子是,我创建了listfood,其中包含特定食品项目的元素,这些项目是包含项目本身信息的列表 现在,我的程序将把食物的每个元素写入一个文件,例如,如果我有Python 将列表列表写入文件,然后将其作为列表列表列表从文件中检索,python,list,readfile,Python,List,Readfile,我为这个令人困惑的标题道歉,我自己也很困惑 现在我正在开发一个程序,在这个程序中我创建了一个列表,其中的元素是列表。然后我将每个元素写入一个文件 一个例子是,我创建了listfood,其中包含特定食品项目的元素,这些项目是包含项目本身信息的列表 现在,我的程序将把食物的每个元素写入一个文件,例如,如果我有 food = [banana, beans] 我在food.txt中的输出将显示为 ['Banana' , .54 , 'No' , 'Food'] ['Beans' , 1.39, 'Ye
food = [banana, beans]
我在food.txt中的输出将显示为
['Banana' , .54 , 'No' , 'Food']
['Beans' , 1.39, 'Yes', 'Food']
其中第一个列表是香蕉,第二个列表是我的食物列表中的豆类
我想要的是,当我再次运行程序时,在我做任何其他事情之前,这些列表将被替换为食物。我知道我可以通过以下方式从文件创建列表:
inFile.readline()
然而,这似乎并没有产生正确的结果。因此,我的问题是如何从文件中读取列表,并将它们放回我的食物列表中,就像我关闭程序之前一样。谢谢你的帮助 好的,我已经让它工作了,它完全按照我希望的那样工作。唯一的问题是,如果文件为空,pickle.load(f)将返回一个错误,因此我必须向文件中添加一项,然后它将正常运行。有没有办法解释文件是空的,然后不运行pickle.load?@只需使用
尝试/,除非
捕获发生的错误OK,我已经让它工作了,它完全按照我的期望工作。唯一的问题是,如果文件为空,pickle.load(f)将返回一个错误,因此我必须向文件中添加一项,然后它将正常运行。有没有办法解释文件是空的,然后不运行pickle.load?如果出现错误,只需使用try
/来捕获错误
>>> import pickle
>>> banana, beans = ['Banana' , .54 , 'No' , 'Food'], ['Beans' , 1.39, 'Yes', 'Food']
>>> food = [banana, beans]
>>> with open('data', 'wb') as f:
pickle.dump(food, f)
>>> with open('data', 'rb') as f:
print pickle.load(f)
[['Banana', 0.54, 'No', 'Food'], ['Beans', 1.39, 'Yes', 'Food']]