python - 变量名似乎被覆盖

标签 python file

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

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

最佳答案

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

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 系统不喜欢文件名中的 :。这是一些background特别是对于 Windows。

关于python - 变量名似乎被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24988935/

相关文章:

c# - 如何使用httpwebrequest从网站拉取图片到本地文件

c - 动态分配整数数组,将它们存储在文件中并在 c 中找到它们的平均值

perl - perl 的 int(-M $file) 有什么作用?

c++ - 读取文件并添加到数组 char

python - 如何在 tkinter 中设置小部件的大小?

python - Pymongoaggregate() 对数组字段进行排序

python - 创建数据透视表

python - 程序中的 RegEx 异常行为

python - Pandas - 创建多个过滤器并应用于数据框

c - fgets 不读取行的开头