Python 3.5:从名称中带有空格的文件中导入特定功能

时间:2018-08-18 08:51:04

标签: python import whitespace python-import

我正在尝试从.py文件中导入仅一个函数,该文件的标题中带有空格。由于外部限制,我无法重命名该文件。

我的第一次尝试是:

from File 1 import my_func

但是出现了SyntaxError。遵循关于其他StackOverflow的建议,我找到了从模块/文件导入所有功能的方法:

V1:

exec(open("File 1.py").read())

V2:

globals().update(vars(__import__('File 1')))

但是,我只想导入my_func。我也希望不使用其他模块(例如importlib)来执行此操作。非常感谢您的帮助,我仍在学习!

1 个答案:

答案 0 :(得分:1)

按要求编辑答案:
来源:How do you import a file in python with spaces in the name?

从名称中带有空格的模块中导入单个函数而不使用importlib是完全不可能的,因为这里的唯一武器是__import__

您唯一的选择是导入整个模块,并仅保留您喜欢的功能。但它仍会导入整个模块

重要通知

强烈建议从模块名称中删除空格和其他非字母数字符号。

示例

文件1.py

def foo():
    print("Foonction.")

def spam():
    print("Get out!")

main.py

globals()["foo"] = getattr(__import__("File 1"),"foo")