如何在没有管理权限的情况下更改 python 程序文件?
How to change python program files without administrative access?
在学习 pygame 的过程中,我创建了一个贪吃蛇游戏。我有一个 high_score.txt 文件来存储玩家的高分。当玩家打破得分记录时,his/her 新记录将使用 python 的 open() 函数写入此 txt 文件。脚本运行没问题,一点问题都没有。
现在,我使用 pyinstaller 将此脚本转换为可执行文件。我没有使用单文件模式。可执行文件也 运行 没问题。然后,我使用 INNO SETUP COMPILER 将我的可执行文件转换为安装文件。在我 运行 此设置后,运行 exe 所需的文件存储在单独的 Snakes 文件夹中 Program Files我电脑 C 盘.
中的文件夹
问题现在开始了。当我 运行 我新安装的游戏时,它开始正常。但是当我开始玩它的时候,每当我吃一个苹果(蛇的食物)时,就会弹出错误:无法运行 script main。经过一些调试,我才知道这个错误是因为python无法重写high_score.txt文件来存储新的高分,因为写Program Files 文件夹中的访问被拒绝。如果我 运行 我的游戏作为管理员,那么它 运行 没问题。但我希望这款游戏在没有管理员权限的情况下正常 运行。我已经在互联网上对其进行了很多研究,但没有任何帮助。有什么办法可以实现吗?
您应该将其存储在适当的用户目录中,而不是安装位置。使用 Path.home
:
from pathlib import Path
score_file = Path.home()/"Saved Games"/"My Cool Game"/"high_score.txt"
在学习 pygame 的过程中,我创建了一个贪吃蛇游戏。我有一个 high_score.txt 文件来存储玩家的高分。当玩家打破得分记录时,his/her 新记录将使用 python 的 open() 函数写入此 txt 文件。脚本运行没问题,一点问题都没有。
现在,我使用 pyinstaller 将此脚本转换为可执行文件。我没有使用单文件模式。可执行文件也 运行 没问题。然后,我使用 INNO SETUP COMPILER 将我的可执行文件转换为安装文件。在我 运行 此设置后,运行 exe 所需的文件存储在单独的 Snakes 文件夹中 Program Files我电脑 C 盘.
中的文件夹问题现在开始了。当我 运行 我新安装的游戏时,它开始正常。但是当我开始玩它的时候,每当我吃一个苹果(蛇的食物)时,就会弹出错误:无法运行 script main。经过一些调试,我才知道这个错误是因为python无法重写high_score.txt文件来存储新的高分,因为写Program Files 文件夹中的访问被拒绝。如果我 运行 我的游戏作为管理员,那么它 运行 没问题。但我希望这款游戏在没有管理员权限的情况下正常 运行。我已经在互联网上对其进行了很多研究,但没有任何帮助。有什么办法可以实现吗?
您应该将其存储在适当的用户目录中,而不是安装位置。使用 Path.home
:
from pathlib import Path
score_file = Path.home()/"Saved Games"/"My Cool Game"/"high_score.txt"