变量名似乎被覆盖

2024-05-23 17:17:59 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我正在为我的游戏编写一个非常简单的保存系统,它将文件名保存为变量名(在添加“:MinecraftText”之前)-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()

编辑:可能是另一个重要的细节;它正在创建一个文件,只是使用了错误的名称


Tags: 文件nametxt名称游戏if文件名response
2条回答

我假设你用的是Windows。文件名中有冒号(:)。这是一个保留字符,实际上指定了一个文件流。你知道吗

File Streams

请尝试在名称中使用其他字符。你知道吗

从用作函数的print语句中,我假设我们正在使用python3。移动提示是可选的,但会删除一行代码。另外,为了清楚起见,我将第二个name变量重命名为pname,并为名为fname的文件名启动了一个新变量。这样你可以检查每一个。也可以尝试去掉文件名中的冒号(正如Michael所建议的)

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

尽管这个答案稍微清楚一点,但您的原始示例在linux提示符下运行得很好。大多数非unix系统不喜欢文件名中的:。这里有一些特别适用于Windows的background。你知道吗

相关问题 更多 >