【发布时间】:2021-08-08 23:16:15
【问题描述】:
首先,如果我犯了一个明显的错误,请原谅我,我对这个很陌生。
我为我和我的朋友们制作了一个小游戏,我正在尝试使用 Configparser 来保存一个记分牌。目前,我认为我正在做的是当有人得到一个正确的问题时,我阅读了名为 scoreboard.ini 的文件,抓住那个人的分数加 1,然后重写文件。我的问题是对文件的更改不保存。当我运行它并稍后调用分数时,它给了我原始的未编辑版本,打开文件本身也显示没有任何改变。
with open(r'/filepath/scoreboard.ini','r+') as files:
config.read((r'/filepath/scoreboard.ini'))
print(config.getint('scores','playerA')) ### returns 0 which is correct
PlayerA_Score = config.getint('scores','PlayerA_Score') + 1
print(PlayerA_Score) ### returns 1 - working correctly
with open(r'/filepath/scoreboard.ini','w+') as files:
config.write(files)
config.set('scores', 'playerA', PlayerA_Score)
print(config.getint('scores', 'playerA')) ### also returns 1 - still working up to here
os.rename('scoreboard.ini','scoreboard.ini')
到目前为止,当我打印出这些值时,它似乎工作正常。但是,如果我打开记分牌文件,它仍然具有原始值。
另外值得一提的是,我将文件重命名为同一件事,因为这是我在其他地方看到的一种潜在解决方案,但它没有奏效。以前我只是在那个时候关闭文件。
我还尝试了两个文件,我打开并从中读取值的记分板,然后写入一个名为 scoreboardA 的新文件,我将更新的分数值写入其中。然后将 scoreboardA 重命名为 scoreboard 并将 scoreboard 重命名为其他内容。我在网上看到的另一种可能的解决方案不起作用,老实说只是让我感到困惑。
我真的对这个大声笑束手无策,我只有大约 3 周的编码时间,所以非常感谢任何帮助。如果这是一个简单的问题,我无法在任何地方找到解决方案,再次道歉。
其他可能相关的信息:
- 我正在为我正在使用 discord.py 制作不和谐的机器人这样做
- 我在 Pycharm 工作
- 我在 Mac 上
如果您需要任何其他信息,请告诉我。
谢谢!
【问题讨论】:
标签: python ini configparser