Должен ли я удалить все пробелы в имени файла, чтобы импортировать его, или есть способ сообщить import
, что существуют пробелы?
Как вы импортируете файл в python с пробелами в имени?
Ответ 1
Вы должны взять пробелы из имени файла. Поскольку имя файла используется как идентификатор импортированных модулей (т.е. foo.py
будет импортироваться как foo
), а идентификаторы Python не могут иметь пробелы, это не поддерживается оператором import
.
Если вам действительно нужно это сделать по какой-либо причине, вы можете использовать функцию __import__
:
foo_bar = __import__("foo bar")
Это будет импортировать foo bar.py
как foo_bar
. Это ведет себя немного иначе, чем оператор import
, и вы должны его избегать.
Ответ 2
Если вы хотите сделать что-то вроде from foo_bar import *
(но вместо пробела вместо подчеркивания), вы можете использовать execfile (docs здесь):
execfile("foo bar.py")
хотя лучше избегать пробелов в именах исходных файлов.
Ответ 3
Вы также можете использовать функцию importlib.import_module
, которая является оберткой вокруг __import__
.
foo_bar_mod = importlib.import_module("foo bar")
или
foo_bar_mod = importlib.import_module("path.to.foo bar")
Дополнительная информация: https://docs.python.org/2/library/importlib.html