【发布时间】:2015-07-16 22:51:46
【问题描述】:
除非我弄错了,否则以下行将获取您目录的绝对路径,以便您可以访问文件
PATH = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0])))
当我需要在我编写的程序中使用图像等时,这就是我通常使用的访问当前目录中的文件的方法。
现在,假设我使用 Windows 访问目录中的特定图像,因此执行以下操作
image = PATH + "\\" + "some_image.gif"
这是我的问题所在,这适用于 Windows,但如果我没记错的话 "\\" 是适用于 Windows 的,这不适用于其他操作系统?我自己不能直接测试这个,因为我没有其他操作系统,或者我不会费心发帖。据我所知,文档中没有提到这一点。
如果确实如此,有没有办法解决这个问题?
【问题讨论】:
-
只需使用
/'s,它适用于所有操作系统 -
os.path.join有什么用?如果你只是将一件事传递给join,你只会取回那一件事;没有什么可以加入的。 -
同时,您为什么不在
image =行中使用os.path.join?这正是您确实需要它的地方。 -
好点只是重用另一个程序的代码,我正在遍历目录计数文件等。另外,为什么我需要图像行中的 .join?我设置了
PATH变量,然后在图像行中使用它来轻松调用多个图像、文件等的任意路径。我看到的唯一其他方法是遍历目录,然后从数组的元素只是认为这更容易另外,谢谢你没有意识到/'s可以在任何操作系统上工作,认为由于某种原因它有所不同 -
您需要
join的原因是因为它抽象出了整个“我应该使用 \\ 或/或者我可以为当前平台找出正确的东西还是……”,然后就去做对。
标签: python file file-io operating-system