我是编程初学者,决定自学Python。几天后,我决定编写一个小程序。我很简单:
事实是,我想重新编写我的程序,以便对列表进行pickle,然后取消对该文件的pickle。然而,由于我正在处理一个我无法处理的错误,我真的很想知道如何解决这个问题。所以我希望你能帮助我:)
在过去的几个小时里,我一直在为这个显然是一个简单而愚蠢的问题而挣扎。虽然我没有找到解决办法。以下是错误和代码:
错误:
Traceback (most recent call last):
File "dailyshot.py", line 25, in <module>
SaveData(todaysline)
File "dailyshot.py", line 11, in SaveData
mon_pickler.dump(datatosave)
TypeError: must be str, not bytes
代码:
^{pr2}$多谢了!在
好吧,这里有几点需要评论:
使用
with
语句时,不必显式关闭文件。Python将在with
块的末尾(第8行)为您完成这项工作。你不能用
todayList
来做任何事情。创建它,添加元素,然后丢弃它。所以可能没用:)为什么要酸洗字符串对象?如果有字符串,只需按原样将它们写入文件。
如果你在写时对数据进行pickle,那么在读的时候就必须取消pickle。您不应该先写入pickled数据,然后将其作为纯文本文件读取。
使用
a
进行追加当您刚刚向文件添加项时,w
将覆盖整个文件。我建议只写一个纯文本文件,其中每一行都是一个条目。在
你确定你发布了正确的密码吗?如果在打开文件时漏掉了“b”,则可能会出现该错误
例如
该文件应以二进制模式打开
^{pr2}$相关问题 更多 >
编程相关推荐