小智 43
你应该从文件名中取出空格.因为文件名用作导入模块的标识符(foo.py
即将导入为foo
),并且Python标识符不能包含空格,所以import
语句不支持此功能.
如果由于某种原因确实需要这样做,可以使用以下__import__
功能:
foo_bar = __import__("foo bar")
Run Code Online (Sandbox Code Playgroud)
这将导入foo bar.py
为foo_bar
.这与import
语句略有不同,您应该避免使用它.
如果你想做类似的事情from foo_bar import *
(但是用空格而不是下划线),你可以使用execfile(这里是 docs ):
execfile("foo bar.py")
Run Code Online (Sandbox Code Playgroud)
虽然最好避免使用源文件名中的空格.
小智 5
您还可以使用importlib.import_module
函数,它是__import__
.
foo_bar_mod = importlib.import_module("foo bar")
Run Code Online (Sandbox Code Playgroud)
或者
foo_bar_mod = importlib.import_module("path.to.foo bar")
Run Code Online (Sandbox Code Playgroud)
更多信息:https : //docs.python.org/3/library/importlib.html