Подтвердить что ты не робот

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

Должен ли я удалить все пробелы в имени файла, чтобы импортировать его, или есть способ сообщить import, что существуют пробелы?

4b9b3361

Ответ 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