En Perl, el módulo FindBin
se usa para localizar el directorio del script original. ¿Cuál es la forma canónica de obtener este directorio en Python?¿Cuál es el equivalente en Python de FindBin de Perl?
Algunas de las opciones que he visto:
os.path.dirname(os.path.realpath(sys.argv[0]))
os.path.abspath(os.path.dirname(sys.argv[0]))
os.path.abspath(os.path.dirname(__file__))
No use FindBin: http://www.perlmonks.org/?node_id=41213 – runrig
La queja de perlmonks es antigua y obsoleta. FindBin se creó porque, antes del advenimiento de/proc/PID/exe, se necesitaban heurísticas para encontrar la ruta del ejecutable actual. El quejoso tenía una heurística, que a menudo no siempre funcionaba. Hacia el final, se informó que la heurística FindBin se había mejorado. Ahora, usa/proc/PID/exe cuando está disponible, y en tales sistemas es más confiable que la queja en esa discusión de perlmonks. –
Permítanme agregar a mi comentario de 3 años o más acerca de que FindBin sigue siendo útil, lo suficientemente útil como para que Perl FindBin esté ahora en la distribución central de perl: en mi humilde opinión aún más útil que FindBin es Dir :: Self de CPAN, que crea una pseudo-constante __DIR__ que se expande al directorio en el que se encuentra su archivo fuente (absoluto). FindBin solo funciona para el ejecutable; __DIR__ funciona para cualquier módulo. –