如何在python中导入文件中的空格?

lil*_*ost 32 python import filenames spaces

是否必须取出文件名中的所有空格才能导入它,或者是否有某种方法可以告诉import它有空格?

小智 43

你应该从文件名中取出空格.因为文件名用作导入模块的标识符(foo.py即将导入为foo),并且Python标识符不能包含空格,所以import语句不支持此功能.

如果由于某种原因确实需要这样做,可以使用以下__import__功能:

foo_bar = __import__("foo bar")
Run Code Online (Sandbox Code Playgroud)

这将导入foo bar.pyfoo_bar.这与import语句略有不同,您应该避免使用它.


dre*_*cko 8

如果你想做类似的事情from foo_bar import *(但是用空格而不是下划线),你可以使用execfile(这里是 docs ):

execfile("foo bar.py")
Run Code Online (Sandbox Code Playgroud)

虽然最好避免使用源文件名中的空格.

  • 只是补充一下,在 Python 3 中它将是 [`exec(open("foo bar.py", "r").read())`](https://docs.python.org/3.3/whatsnew/3.0 .html?highlight=execfile#builtins) (4认同)

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