小智 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