简体   繁体   中英

How to get the PATH environment-variable separator in Python?

When multiple directories need to be concatenated, as in an executable search path, there is an os-dependent separator character. For Windows it's ';' , for Linux it's ':' . Is there a way in Python to get which character to split on?

In the discussions to this question How do I find out my python path using python? , it is suggested that os.sep will do it. That answer is wrong, since it is the separator for components of a directory or filename and equates to '\\\\' or '/' .

它是 os.pathsep

Making it a little more explicit (For python newbies like me)

import os
print(os.pathsep)

OK, so there are:

  • os.pathsep that is ; and which is a separator in the PATH environment variable;
  • os.path.sep that is / in Unix/Linux and \\ in Windows, which is a separator between path components.

The similarity is a source of confusion.

This is a sample path for your working directory/specific folder -

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

Output for Linux-

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

Output for Windows-

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM