我是一名编程初学者,并决定自学 Python。几天后,我决定编写一小段代码。我很简单:
- 今天的日期
- 我所在的页面(我在看书)
- 我感觉如何
- 然后我将数据添加到文件中。每次我启动程序时,它都会在文件中添加一行新数据
- 然后我提取数据以制作列表列表。
事实是,我想重新编写我的程序以腌制一个列表,然后取消腌制文件。但是,由于我正在处理我无法处理的错误,我真的很想了解如何解决这个问题。因此,我希望你能帮助我:)
在过去的几个小时里,我一直在努力解决这个显然是一个简单而愚蠢的问题。虽然我没有找到解决方案。这是错误和代码:
错误:
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
代码:
import pickle
import datetime
def SaveData(datatosave):
with open('journey.txt', 'wb') as thefile:
my_pickler = pickle.Pickler(thefile)
my_pickler.dump(datatosave)
thefile.close()
todaylist = []
today = datetime.date.today()
todaylist.append(today)
page = input('Page Number?\n')
feel = input('How do you feel?\n')
todaysline = today.strftime('%d, %b %Y') + "; " + page + "; " + feel + "\n"
print('Thanks and Good Bye!')
SaveData(todaysline)
print('let\'s make a list now...')
thefile = open('journey.txt','rb')
thelist = [line.split(';') for line in thefile.readlines()]
thefile.close()
print(thelist)
感谢战利品!