获取错误:write()不接受关键字参数
gd = open("gamedata.py" , "rb+")
gd.write(CharHealth = 100)
gd.close
我遇到了一个错误信息:write() 不接受关键字参数,我搞不清楚为什么。我的理解是,代码试图把 (CharHealth = 100)
当作关键字参数来处理,而不是把它写入 gamedata.py 文件。
我想把 (CharHealth = 100)
(作为一行代码)和其他代码一起写入 gamedata.py 文件。
1 个回答
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')