我想使用pickle保护一些字符串,并将昨天的字符串与今天的字符串进行比较。
filename = filename + '_yesterday.txt'
with open(filename, 'w+') as myfile:
# if empty write something
if os.path.getsize(myfile) == 0:
myfile.write('write something')
old_strings = pickle.load(myfile)
all_strings = '....'
with open(filename, 'w') as myfile:
pickle.dump(all_strings, myfile)
第一个问题:为什么我不能为文件使用变量名
我总是得到这个例外。
with open(filename, 'w+') as myfile:
IOError: [Errno 2] No such file or directory:
第二个问题:
如果将其与现有文件一起使用,则会收到此异常:
if os.path.getsize(myfile) == 0:
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/genericpath.py", line 49, in getsize
return os.stat(filename).st_size
TypeError: coercing to Unicode: need string or buffer, file found
最佳答案
您需要以'wb+'
模式打开文件
关于python - Python-使用 pickle 时发生TypeError-如何正确使用它,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31915747/