Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列表列表写入文件,然后将其作为列表列表列表从文件中检索_Python_List_Readfile - Fatal编程技术网

Python 将列表列表写入文件,然后将其作为列表列表列表从文件中检索

Python 将列表列表写入文件,然后将其作为列表列表列表从文件中检索,python,list,readfile,Python,List,Readfile,我为这个令人困惑的标题道歉,我自己也很困惑 现在我正在开发一个程序,在这个程序中我创建了一个列表,其中的元素是列表。然后我将每个元素写入一个文件 一个例子是,我创建了listfood,其中包含特定食品项目的元素,这些项目是包含项目本身信息的列表 现在,我的程序将把食物的每个元素写入一个文件,例如,如果我有 food = [banana, beans] 我在food.txt中的输出将显示为 ['Banana' , .54 , 'No' , 'Food'] ['Beans' , 1.39, 'Ye

我为这个令人困惑的标题道歉,我自己也很困惑

现在我正在开发一个程序,在这个程序中我创建了一个列表,其中的元素是列表。然后我将每个元素写入一个文件

一个例子是,我创建了listfood,其中包含特定食品项目的元素,这些项目是包含项目本身信息的列表

现在,我的程序将把食物的每个元素写入一个文件,例如,如果我有

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']]