我是編程的初學者,並決定自學Python。幾天後,我決定編寫一小段代碼。我是很簡單的:Python:數據到文件然後數據從文本文件到列表 - TypeError:必須是str,而不是字節
- 今天
- 頁我在(我讀一本書)的日期
- 我怎麼感覺
- 然後我在文件中添加數據。每次啓動程序時,它會在文件
- 中添加一行新的數據,然後提取數據以生成列表列表。
事實是,我想重新寫我的程序,以醃菜單,然後unpickle該文件。但是,當我處理一個我無法處理的錯誤時,我真的很想知道如何解決這個問題。因此,我希望你能幫助我:)
我一直在這個顯然簡單而愚蠢的問題一直在努力過去的幾個小時。雖然我找不到解決方案。以下是錯誤,代碼:
錯誤:
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
CODE:
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)
感謝looot!
感謝維克多被打開。關於你的代碼,第22行似乎沒有解決。在我看來,缺少一些東西沒有?但有沒有辦法讓我的代碼工作,通過修復這個「一定是str,而不是字節」的錯誤,這看起來並不複雜......但我找不到如何解決它。我試圖瞭解我不在這裏:) – 2lr
我改變了一點,現在是什麼線?你使用的是什麼版本的Python? –
Python3.3 - 感謝您抽出時間 – 2lr