Python 变量名似乎被覆盖
因此,我正在为我的游戏编写一个非常简单的保存系统,它将文件名保存为变量名(在添加“:minecraftext turePack.txt”之前)。我对它进行了打印(在名称更改之后),变量被更改了,但它仍然给了我错误的文件名。有什么想法吗?谢谢Python 变量名似乎被覆盖,python,file,Python,File,因此,我正在为我的游戏编写一个非常简单的保存系统,它将文件名保存为变量名(在添加“:minecraftext turePack.txt”之前)。我对它进行了打印(在名称更改之后),变量被更改了,但它仍然给了我错误的文件名。有什么想法吗?谢谢 if response == "save_pack": print("What do you want to call it?") name = input() name = name + ":MinecraftText-turePa
if response == "save_pack":
print("What do you want to call it?")
name = input()
name = name + ":MinecraftText-turePack.txt"
pack = open(name, "w")
for each in inventory:
name, amount, recipe = each
pack.write(name)
pack.close()
编辑:可能是另一个重要的细节;它正在创建一个文件,只是从用作函数的
print
语句中使用了错误的名称。移动提示是可选的,但会删除一行代码。另外,为了清楚起见,我将第二个name
变量重命名为pname
,并为文件名启动了一个名为fname
的新变量。这样你可以检查每一个。还可以尝试去掉文件名中的冒号(正如Michael建议的那样)
虽然这个答案稍微清楚一些,但您的原始示例在linux提示符下运行得很好。大多数非unix系统不喜欢文件名中的
:
。这里有一些特别适用于Windows的 我假设您正在使用Windows。文件名中有一个冒号(:)。这是一个保留字符,实际上指定了一个文件流
请尝试在名称中使用不同的字符。您为
name
变量获取的值有哪些错误?它只是返回输入的值什么值有库存?您能给出一个失败的示例吗?名称的哪个输入会给您意外的结果?您运行的是哪个系统?冒号在文件名中可能无效。试着不使用它,看看是否有效。它似乎无法将原始输入识别为有效命令。确切的错误是:NameError:name'raw\u input'未定义抱歉,看起来您正在使用Python3,raw\u input
不再存在。如果你把变量分解,这样我们就可以测试每个变量了。例如name=input()
<代码>fname=name+“:Minecra…”
if response == "save_pack":
name = input("What do you want to call it?\n")
fname = name + "-MinecraftText-turePack.txt"
pack = open(fname, "w")
for each in inventory:
pname, amount, recipe = each
pack.write(pname)
pack.close()