如何在Python中获取PATH环境变量分隔符?

178

当多个目录需要连接在一起,例如可执行文件的搜索路径时,会使用一个与操作系统相关的分隔符。在Windows中是';',在Linux中是':'。在Python中有没有一种方法可以获取要拆分的字符?

在讨论此问题如何使用Python找到我的Python路径?中,建议使用os.sep。该答案是错误的,因为它是用于目录或文件名组件的分隔符,相当于'\\''/'

5个回答

236

232
如果像我一样,你没有阅读这个问题的正文,只是看了标题,那么你会认为这个字符是用于分隔文件系统路径元素的(在Linux和MacOSX上是斜杠,在Windows上是反斜杠)。但实际上,它是用于分隔shell PATH元素的字符,用于定位可执行命令。对于文件系统路径,你需要使用os.sepos.path.sep - Perry
80
os.pathsep 的值是 :;,而 os.path.sep 的值则是 \\/。有时候我觉得 Python 中的变量名选择非常糟糕,那个点号让区别太大了。 - ArtOfWarfare
2
@Perry,我已经编辑了这个问题。希望我的编辑能够消除困惑(我指出这个问题是在询问“PATH环境变量”,而不是“文件系统路径”)。 - Trevor Boyd Smith
所以有 os.sepos.path.sep,它们是相等的,还有 os.pathsepos.path.pathsep 也是相等的。为什么会这样做呢? - BallpointBen

32

这是 os.pathsep。


16

好的,所以有:

  • os.pathsep; ,它是 PATH 环境变量中的分隔符;
  • os.path.sep 在 Unix/Linux 中是 / ,在 Windows 中是 \ ,它是路径组件之间的分隔符。

这种相似性会导致混淆。


你有没有仔细阅读问题?os.path.sep是另一个问题的答案。 - Mark Ransom
1
你说得对,谢谢!我的困惑来自于我实际上正在寻找 '' 和 '/' 系统特定的分隔符(即 os.path.sep),而这个页面被提议为搜索结果之一。 - DVV

14

更明确地说(适合像我这样的Python新手)

import os
print(os.pathsep)

-5
这是一个用于您的工作目录/特定文件夹的示例路径 -
 import os
 my = os.pathsep+ "testImages" + os.pathsep + "imageHidden.png"
 print(my)

Linux 的输出 -

:testImages:imageHidden.png

Windows系统的输出-

;testImages;imageHidden.png


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接