Как импортировать файл в python с пробелами в имени?

Я обязательно уберите все пробелы в имени файла, чтобы импортировать его, или есть какой-то способ сказать import что есть пробелы?

3 ответов


вы должны удалить пробелы из имени файла. Потому что имя файла используется в качестве идентификатора для импортированных модулей (т. е. foo.py будет импортирован как foo) и идентификаторы Python не могут иметь пробелов, это не поддерживается import заявление.

если вы действительно нужно делать это по какой-то причине, вы можете использовать __import__ функция:

foo_bar = __import__("foo bar")

это импорт foo bar.py as foo_bar. Это ведет себя немного иначе, чем import заявление и вы должны избегать его.


Если вы хотите сделать что-то вроде from foo_bar import * (но с пробелом вместо подчеркивания), вы можете использовать execfile (документы здесь):

execfile("foo bar.py")

хотя лучше избегать пробелов в именах исходных файлов.


вы также можете использовать 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