我正在尝试从 .py 文件中仅导入一个函数,该文件的标题中有一个空格。由于外部限制,我无法重命名该文件。
我的第一次尝试是:
from File 1 import my_func
但是出现了语法错误。根据其他 StackOverflow 的建议,我找到了从模块/文件导入所有函数的方法:
V1:
exec(open("File 1.py").read())
V2:
globals().update(vars(__import__('File 1')))
但是,我只想导入 my_func。我也更愿意在不使用其他模块(例如 importlib)的情况下执行此操作。非常感谢任何帮助,我仍在学习!
根据要求编辑答案:
来源:如何在 python 中导入名称中带有空格的文件?.
在不使用 importlib 的情况下从名称中带有空格的模块导入单个函数是根本不可能的,因为这里你唯一的武器是
__import__
。
您唯一的选择是导入整个模块并只保留您喜欢的功能。但它仍然导入整个模块。
强烈建议从模块名称中删除空格和其他非字母数字符号。
文件1.py
def foo():
print("Foonction.")
def spam():
print("Get out!")
主.py
globals()["foo"] = getattr(__import__("File 1"),"foo")