我想使用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/

10-13 05:27