Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 变量名似乎被覆盖_Python_File - Fatal编程技术网

Python 变量名似乎被覆盖

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

因此,我正在为我的游戏编写一个非常简单的保存系统,它将文件名保存为变量名(在添加“:minecraftext turePack.txt”之前)。我对它进行了打印(在名称更改之后),变量被更改了,但它仍然给了我错误的文件名。有什么想法吗?谢谢

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()