Foros del Web » Programando para Internet » Python »

Ruta del script actual

Estas en el tema de Ruta del script actual en el foro de Python en Foros del Web. Hola de nuevo, espero alguien me pueda resolver esta duda: Tengo un archivo de python en una ruta cualquiera (puede cambiar) así que quiero trabajar ...
  #1 (permalink)  
Antiguo 21/01/2012, 12:48
Avatar de shujidan  
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años, 7 meses
Puntos: 5
Ruta del script actual

Hola de nuevo, espero alguien me pueda resolver esta duda:
Tengo un archivo de python en una ruta cualquiera (puede cambiar) así que quiero trabajar con los demas archivos que se encuentran el en directorio actual al hacer doble clic en el .py, excepto que cuando lo ejecuto este no encuentra los archivos porque su contexto es:

Código Python:
Ver original
  1. > print(os.getcwd())
  2. C:\Windows\system32

Igual que el os.curdir, este solo imprime un punto, pero los archivos en su directorio son los mismos que se encuentran en C:\Windows\system32

Mi pregunta es como saber en que directorio me encuentro con un comando de python?
  #2 (permalink)  
Antiguo 21/01/2012, 12:53
Avatar de shujidan  
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Ruta del script actual

Justo después de acudir al foro, resolví mi duda solo.
Aqui anoto la respuesta por si algún día a alguien le sirve,
Imprime el directorio actual donde está ubicado el archivo.py
Código Python:
Ver original
  1. import os
  2. os.path.dirname(os.path.abspath(__file__))



Edit:Y en caso de que el archivo este congelado (exe) con pyinstaller:
Código Python:
Ver original
  1. import sys
  2. if getattr(sys, 'frozen', None): basedir = sys._MEIPASS
otros:
Código Python:
Ver original
  1. import os, sys
  2. os.path.dirname(sys.executable)

Espero que algún día a alguien le sirva, suerte.

Última edición por shujidan; 26/09/2012 a las 14:50

Etiquetas: actual, ruta, windows
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:18.