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

-3 投票
1 回答
13052 浏览
提问于 2025-04-18 09:27
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')

撰写回答