我在 python 程序中的某些计算机中有一个目录路径出现故障



所以我一直在用python构建一个基于文本的游戏,作为一个学习python的项目,在我学习它们的时候实现东西,所以我在某些情况下开始出现这个错误,我一直在树莓派上开发这个游戏,在运行mint 13的机器和Android平板电脑上。最近虽然我在python 3.3中重建了游戏,但当我这样做时,当我从目录路径打开时,我开始出现错误,代码是这样的

 with open('rooms/' + str(id) + '.json', 'r', ) as f:
     jsontext = f.read()

我将我的房间作为 json 文件存储在项目所在的同一目录中的单独文件夹中,如果有人想看看它是如何工作的,您可以在 www.github.com/kevin2314/TextGame 查看该项目。在我的树莓派和我的薄荷 13 机器上,这段代码工作正常,但在我的安卓平板电脑上,它返回这样的错误

 IOError: [Errno 2] No such file or directory: "rooms/intro.json"

起初我认为这可能只是因为它是在 android 上,它不是专门为 python 编程而构建的,所以我没有太注意它。不过,在我将其发布到 github 之后,除了他们使用的是 Ubuntu 之外,另一个人遇到了同样的问题,所以我不知道路径的问题是什么。

如果有人能对此有所了解,我将不胜感激,我不想开始与很多人一起遇到这个问题

您引用的路径取决于起始目录。 您应该使用 __file__ 全局变量:

with open(os.path.join(
             os.path.dirname(__file__), 'rooms', + str(id) + '.json'),
          'r') as f:
    jsontext = f.read()

我还建议使用 os.path.join 来创建文件名,以便您可以使用特定于平台的路径分隔符。

请注意,os.curdir()将返回程序启动的位置,而不是 rooms.py 文件的位置。

您可以使用 os.getcwd() 查找当前目录并从那里继续。

相关内容

最新更新