Olá, primeiro de tudo, você deve entender as funções os.path.abspath (path) e os.path.relpath (path)
Em resumo, os.path.abspath (path) faz um caminho relativo para o caminho absoluto . E se o caminho fornecido for um caminho absoluto, a função retornará o mesmo caminho.
da mesma forma os.path.relpath (path) faz um caminho absoluto para o caminho relativo . E se o caminho fornecido for um caminho relativo, a função retornará o mesmo caminho.
O exemplo abaixo pode permitir que você entenda o conceito acima corretamente :
suponha que eu tenho um arquivo input_file_list.txt que contém a lista de arquivos de entrada a serem processados pelo meu script python.
D: \ conc \ input1.dic
D: \ conc \ input2.dic
D: \ Copyioconc \ input_file_list.txt
Se você ver a estrutura da pasta acima, o arquivo input_file_list.txt está presente na pasta Copyofconc e os arquivos a serem processados pelo script python estão presentes na pasta conc
Mas o conteúdo do arquivo input_file_list.txt é como mostrado abaixo:
.. \ conc \ input1.dic
.. \ conc \ input2.dic
E o meu script python está presente no D: drive.
E o caminho relativo fornecido no arquivo input_file_list.txt é relativo ao caminho do arquivo input_file_list.txt .
Portanto, quando o script python executar o diretório de trabalho atual (use os.getcwd () para obter o caminho)
Como meu caminho relativo é relativo a input_file_list.txt , que é "D: \ Copyofconc" , tenho que alterar o diretório de trabalho atual para "D: \ Copyofconc" .
Então, eu tenho que usar os.chdir ('D: \ Copyofconc') , para que o diretório de trabalho atual seja "D: \ Copyofconc" .
Agora, para obter os arquivos input1.dic e input2.dic , lerei as linhas ".. \ conc \ input1.dic" e depois usarei o comando
input1_path = os.path.abspath ('.. \ conc \ input1.dic') (para alterar o caminho relativo para o caminho absoluto. Aqui como diretório de trabalho atual é "D: \ Copyofconc", o arquivo ". \ conc \ input1. dic "deve ser acessado em relação a" D: \ Copyofconc ")
portanto, input1_path deve ser "D: \ conc \ input1.dic"