获取错误:write()不带关键字参数

时间:2014-06-11 16:12:06

标签: python python-3.4

gd = open("gamedata.py" , "rb+")

gd.write(CharHealth = 100)

gd.close

我收到错误消息:write()没有关键字参数,我无法弄清楚原因。我最好的解释是代码试图将(CharHealth = 100)解释为关键字参数,而不是将其写入gamedata.py。

我想将(CharHealth = 100)(作为一行代码)与其他代码一起写入gamedata.py

1 个答案:

答案 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')