python - importar - ¿Rutas de archivos independientes de la plataforma?
importar clases en python (4)
¿Cómo puedo usar un archivo dentro de la carpeta de mi aplicación en Python? Plataforma independiente por supuesto ... algo similar a esto:
#!/bin/sh
mypath=${0%/*}
LIBDIR=$mypath/modules
En Python 3.4+ puedes usar pathlib
:
from pathlib import Path
parent = Path(__file__).resolve().parent # get current script directory
path = parent / "modules" # create a child path
Puede usar os.path
y sus funciones, que se encargan de las rutas específicas del sistema operativo:
>>> import os
>>> os.path.join(''app'', ''subdir'', ''dir'', ''filename.foo'')
''app/subdir/dir/filename.foo''
En Windows, debería imprimir con barras diagonales inversas.
__file__
contiene la ubicación del módulo. Use las funciones en os.path
para extraer el directorio de él.
import os
os.path.join(os.path.curdir, ''file.name'')
o
import os
os.path.join(os.path.dirname(__file__), ''file.name'')
dependiendo de si es un módulo (2) o un solo script (1) , y si lo está invocando desde el mismo directorio (1) , o desde uno diferente (2) .
Editar
Mirando el "intento" que tienes en tu pregunta, supongo que querrías (1) .