import pickle
historylst=[]
error=[]
try:
data=open('data.pickle','r+b')
except:
data=open('data.pickle','w+b')
print('data.pickle is not exist')
pickle.dump((historylst,error),data)
data.flush()
print(pickle.load(data))
else:
print('data.pickle is exist')
开发一个带有自动保存功能的软件,遇到了问题,上面是保存功能得代码。
具体逻辑是,先检测文件是否存在,如果存在,就以读取方式打开,并输出存在;如果不存在,就新建一个,并输出不存在,然后加载内容并输出。。
由于r方式打开文件,不存在会报错,所以我用try结构判断是否存在。
但是,执行代码的时候,当执行到try下面那行的时候,如果此时文件不存在,就会报错。按理说,try管辖的部分,即使有错也不应该报错的,但是却报错了。
请各位大神不吝赐教,谢谢
报错信息如下:
data.pickle is not exist
Traceback (most recent call last):
File "test.py", line 5, in <module>
data=open('data.pickle','r+b')
FileNotFoundError: [Errno 2] No such file or directory: 'data.pickle'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "test.py", line 11, in <module>
print(pickle.load(data))
EOFError: Ran out of input
请按任意键继续. . .