我正在尝试从.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)来执行此操作。非常感谢您的帮助,我仍在学习!
答案 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")