Python typeerror:文件在使用pickle时必须具有'write'属性 [英] Python typeerror: file must have a 'write' attribute while using pickle

查看:3747
本文介绍了Python typeerror:文件在使用pickle时必须具有'write'属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我正在尝试处理保存文件的问题,这里是代码:

Hi everyone,
I'm trying to handle a problem with saving file here is the code:

import random
import pickle
save=open('Zapis gry', 'wb')
name = input('Wpisz swój nick')
choice_race=0
while not (choice_race > 0 and choice_race < 5):
    while True:
        try:
            choice_race = int(input('''Wpisz jedną z 4 cyferek- każda oznacza inną rasę:
            1-Wojownik                        2-Łucznik                      3-Mag                        4-Ninja
            - Posiada tarcze (10% szans         - atakuje z dystancu (3       - Może się leczyć (20%       - Jest bardzo zwinny (20%
              na obronę przed atakiem)            pierwsze ciosy w walce        szans na przywrócenie        na uniknięcie ciosu)
                                                  są jego)                      punktów życia z zakresu    - pierwszy cios jest
                                                                                5-10 co atak)                zawsze jego
            - 150 punktow życia                 - 80 punktów życia            - 50 punktów życia           - 120 punktów życia  
            - zadaje obrażenia z zakresu        - zadaje obrażenia z zakresu  - Zadaje obrażenia z zakresu - Zadaje obrażenia z                           
              8-10                                12-15                         15-20                        zakresu 10-12     '''))

        except:
            print("Wpisz liczbę z zakresu od 1 do 4")
        break
if choice_race==1:
    race= [name, 'wojownik', 150, (8, 10), 10, 0]
elif choice_race==2:
    race= [name,'łucznik',80, (12,15), 0, 0]
elif choice_race==3:
    race=[name, 'mag', 50, (15,20), 0, 20]
else :
    race=[name, 'ninja',120, (10, 12), 20, 0]
pickle.dump(race, "Zapis gry")
save.close() 



我很乐意为你提供帮助,因为我正在努力修复它大约一个小时或更长时间...



我尝试过的事情:



Idk为什么我必须写下来,我尝试了很多,但我猜,有人可以在几秒钟内以100%的概率帮助我!


I will be very glad for your help, because I'm trying to fix it for about hour or more...

What I have tried:

Idk why I have to write it down, I tried a lot, but I guess, that someone can help me with 100% probability in just few seconds!

推荐答案

pickle.dump需要文件对象参数,但您传递了文件名字符串。你应该传递 save



pickle.dump requires a file object parameter, but you passed a file name string. Instead of "Zapis gry", you should pass save:

pickle.dump(race, save)


这篇关于Python typeerror:文件在使用pickle时必须具有'write'属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆