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


156

当需要将多个目录串联在一起时(例如在可执行文件搜索路径中),存在一个与OS相关的分隔符。对于Windows ';',对于Linux':'。Python中有没有一种方法可以分割哪个字符?

在对此问题的讨论中,如何使用python找出我的python路径?,建议这样os.sep做。这个答案是错误的,因为它是目录或文件名组成部分的分隔符,等于'\\''/'

Answers:


220

219
如果像我一样,您没有阅读此问题的内容,只是标题,您将认为这是分隔文件系统路径元素的字符(在Linux和MacOSX上为正斜杠,在Windows上为反斜杠)。不是,它是分隔外壳PATH元素的字符,用于定位可执行命令。 os.sepos.path.sep文件系统路径需要什么。
佩里

71
os.pathsep:;同时os.path.sep\\ /-有时在Python的名字让我最令人震惊的选择不当。这.使差异太大了。
ArtOfWarfare 2015年

1
@Perry我编辑了问题。希望我的编辑可以消除混乱(我表示此问题是在询问“ PATH环境变量”而不是“文件系统路径”)。
Trevor Boyd Smith,

因此,有os.sepos.path.sep相等,以及os.pathsepos.path.pathsep也相等。他们为什么要这样做?
BallpointBenpoint,2015年


12

使它更加明确(对于像我这样的python新手)

import os
print(os.pathsep)

4

好,所以有:

  • os.pathsep这是;并且是PATH环境变量中的分隔符;
  • os.path.sep/在Unix / Linux和\Windows中,这是路径成分之间的隔板。

相似性是造成混乱的根源。


你甚至读过这个问题吗?os.path.sep另一个问题的答案。
马克·兰瑟姆

您说得对,谢谢!我感到困惑的原因是,实际上我正在寻找特定于系统的'\'和'/'系统分隔符(即os.path.sep),而此页面却被建议作为搜索结果之一。
DVV

1

这是您的工作目录/特定文件夹的示例路径-

 import os
 my = os.path.sep+ "testImages" + os.path.sep + "imageHidden.png"
 print(my)

Linux-的输出

/home/*******/Desktop/folder/PlayWithPy/src/testImages/imageHidden.png

Windows输出

C:\\Users\\Administrator\\Desktop\\folder\\tests\\testImages\\imageHidden.png

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.