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

时间:2013-09-06 16:39:13

标签: python path ioerror

所以我一直在python中构建一个基于文本的游戏作为学习python的项目,在我学习它的时候实现一些东西,所以我开始在某些情况下得到这个错误,我一直在使用覆盆子pi开发这个游戏,运行薄荷13和机器人平板电脑的机器。最近虽然我在python 3.3中重建了游戏,当我这样做时,当我从目录路径打开时,我开始收到错误代码就是这个

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

我将我的房间作为json文件存储在项目所在的同一目录中的单独文件夹中,如果有人希望了解其工作原理,您可以在www.github.com/kevin2314/TextGame查看该项目。在我的覆盆子pi和我的薄荷13机器上这个代码工作得很好,但在我的Android平板电脑上,它返回一个像这样的错误

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您指的路径取决于起始目录。您应该使用__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()将返回启动程序的位置,而不是room.py文件的位置。