Quando vários diretórios precisam ser concatenados, como em um caminho de pesquisa executável, existe um caractere separador dependente do sistema operacional. Para Windows é ';'
, para Linux é ':'
. Existe uma maneira no Python de obter qual caractere dividir?
Nas discussões para esta pergunta Como descubro meu caminho python usando python? , sugere-se que os.sep
o faça. Essa resposta está errada, pois é o separador para componentes de um diretório ou nome de arquivo e equivale a '\\'
ou '/'
.
python
operating-system
environment-variables
Mark Ransom
fonte
fonte
os.sep
ouos.path.sep
é o que você precisa para os caminhos do sistema de arquivos.os.pathsep
is:
or;
whileos.path.sep
is\\
or/
- às vezes os nomes em Python me parecem chocantemente mal escolhidos. Isso.
faz muita diferença.os.sep
eos.path.sep
, quais são iguais,os.pathsep
eos.path.pathsep
também são iguais. Por que eles fariam isso?É os.pathsep
fonte
Tornando um pouco mais explícito (para iniciantes em python como eu)
fonte
OK, então existem:
os.pathsep
isso é;
e é um separador naPATH
variável de ambiente;os.path.sep
que está/
no Unix / Linux e\
no Windows, que é um separador entre os componentes do caminho.A semelhança é uma fonte de confusão.
fonte
os.path.sep
é a resposta para uma pergunta diferente .Este é um caminho de amostra para o seu diretório de trabalho / pasta específica -
Saída para Linux-
/home/*******/Desktop/folder/PlayWithPy/src/testImages/imageHidden.png
Saída para Windows-
C:\\Users\\Administrator\\Desktop\\folder\\tests\\testImages\\imageHidden.png
fonte