Должен ли я удалить все пробелы в имени файла, чтобы импортировать его, или есть способ сообщить 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