Hola, en primer lugar, debe comprender las funciones os.path.abspath (ruta) y os.path.relpath (ruta)
En resumen, os.path.abspath (ruta) crea una ruta relativa a la ruta absoluta . Y si la ruta proporcionada es en sí misma una ruta absoluta, entonces la función devuelve la misma ruta.
Del mismo modo os.path.relpath (ruta de acceso) realiza una ruta absoluta a ruta relativa . Y si la ruta proporcionada es en sí misma una ruta relativa, la función devuelve la misma ruta.
El siguiente ejemplo puede permitirle comprender el concepto anterior correctamente :
supongamos que tengo un archivo input_file_list.txt que contiene una lista de archivos de entrada para ser procesados por mi script de Python.
D: \ conc \ input1.dic
D: \ conc \ input2.dic
D: \ Copyioconc \ input_file_list.txt
Si ve la estructura de carpetas anterior, input_file_list.txt está presente en la carpeta Copyofconc y los archivos que procesará el script de Python están presentes en la carpeta conc
Pero el contenido del archivo input_file_list.txt es el que se muestra a continuación:
.. \ conc \ input1.dic
.. \ conc \ input2.dic
Y mi script de Python está presente en D: drive.
Y la ruta relativa proporcionada en el archivo input_file_list.txt es relativa a la ruta del archivo input_file_list.txt .
Entonces, cuando el script python ejecutará el directorio de trabajo actual (use os.getcwd () para obtener la ruta)
Como mi ruta relativa es relativa a input_file_list.txt , es decir "D: \ Copyofconc" , tengo que cambiar el directorio de trabajo actual a "D: \ Copyofconc" .
Así que tengo que usar os.chdir ('D: \ Copyofconc') , por lo que el directorio de trabajo actual será "D: \ Copyofconc" .
Ahora para obtener los archivos input1.dic y input2.dic , leeré las líneas ".. \ conc \ input1.dic" y luego usaré el comando
input1_path = os.path.abspath ('.. \ conc \ input1.dic') (para cambiar la ruta relativa a la ruta absoluta. Aquí, como directorio de trabajo actual es "D: \ Copyofconc", el archivo ". \ conc \ input1. Dic "se accederá en relación con" D: \ Copyofconc ")
entonces input1_path será "D: \ conc \ input1.dic"