file.write 无法保存整数

file.write can't save int

我正在为我正在制作的游戏构建一个保存系统,我正在尝试保存您在游戏中获得的所有资源,以便您下次玩游戏时可以加载它。我打算使用 file.write 因为我看到它被用于其他类型的游戏,但它不能将变量保存为整数。是否有任何类型的解决方法或只是一种不同类型的保存方法我可以用来做到这一点?

from Resources import *

def start_new():
    Q = int(input('which save file do you want to save to? 1, 2, or 3.'))
    if Q == 1:
        file = open("save1.txt", "w")
        file.write(Manpower)
        file.write(Food)
        file.write(Food_Use)
        file.write(Wood)
        file.write(Farmers)
        file.write(Food_Income)
        file.write(FarmNum)
        file.write(MaxFarmer)
        file.write(Deforestation)
        file.write(Trees)
        file.write(Tree_Spread)
        file = open("save1.txt", "r")

在您的代码中,您需要在更改后关闭文件...

file.close()

您的代码:

from Resources import *

def start_new():
    Q = int(input('which save file do you want to save to? 1, 2, or 3.'))
    if Q == 1:
        file = open("save1.txt", "w")
        file.write(Manpower)
        file.write(Food)
        file.write(Food_Use)
        file.write(Wood)
        file.write(Farmers)
        file.write(Food_Income)
        file.write(FarmNum)
        file.write(MaxFarmer)
        file.write(Deforestation)
        file.write(Trees)
        file.write(Tree_Spread)
        file.close()
        file = open("save1.txt", "r")
        # stuff
        file.close()

将整数值转换为字符串。您可以使用多种方法执行此操作。让我们将 Manpower(假设此变量的类型为 int)写入文件作为示例:

一个小建议,使用 with 语句时不需要调用 file.close() 。 with 语句本身确保资源的正确获取和释放。

with open("save1.txt", 'w') as f:
    f.write(str(Manpower))

甚至更好:

with open("save1.txt", 'w') as f:
    f.write(f"{Manpower}\n")

\nEOL(行尾)字符。在 EOL 个字符之后,新的写入将在下一行。您可以在再次阅读时使用它来分隔和识别值。