texto - ¿Cómo se importa un archivo en python con espacios en el nombre?
gestion de archivos en python (3)
¿Tengo que eliminar todos los espacios en el nombre del archivo para importarlo, o hay alguna manera de decirle a import
que hay espacios?
Debe sacar los espacios del nombre de archivo. Debido a que el nombre de archivo se utiliza como el identificador para los módulos importados (es decir, foo.py
se importará como foo
) y los identificadores de Python no pueden tener espacios, la declaración de import
no lo admite.
Si realmente necesita hacer esto por alguna razón, puede usar la función __import__
:
foo_bar = __import__("foo bar")
Esto importará foo bar.py
como foo_bar
. Esto se comporta un poco diferente de la declaración de import
y debe evitarlo.
Si quieres hacer algo como from foo_bar import *
(pero con un espacio en lugar de un guión bajo), puedes usar execfile (docs here ):
execfile("foo bar.py")
aunque es una mejor práctica evitar los espacios en los nombres de los archivos de origen.
También puede usar la función importlib.import_module
, que es un envoltorio alrededor de __import__
.
foo_bar_mod = importlib.import_module("foo bar")
o
foo_bar_mod = importlib.import_module("path.to.foo bar")
Más información: https://docs.python.org/2/library/importlib.html