gd = open("gamedata.py" , "rb+")
gd.write(CharHealth = 100)
gd.close
我收到错误消息:write()没有关键字参数,我无法弄清楚原因。我最好的解释是代码试图将(CharHealth = 100)
解释为关键字参数,而不是将其写入gamedata.py。
我想将(CharHealth = 100)
(作为一行代码)与其他代码一起写入gamedata.py
答案 0 :(得分:6)
如果你想写文字,那么传入bytes
对象,而不是Python语法:
gd.write(b'CharHealth = 100')
您需要使用b'..'
bytes
文字,因为您以二进制模式打开了文件。
事实上,Python可以在以后读取文件并且解释Python内容并不会改变您现在正在编写字符串的事实。
请注意gd.close
什么都不做;您正在引用close
方法而不实际调用它。最好将开放文件对象用作上下文管理器,并让Python自动关闭它:
with open("gamedata.py" , "rb+") as gd:
gd.write(b'CharHealth = 100')
Python源代码是Unicode文本,而不是字节,真的,不需要以二进制模式打开文件,也不需要回读刚才写的内容。使用'w'
作为模式并使用字符串:
with open("gamedata.py" , "w") as gd:
gd.write('CharHealth = 100')