Python 3.5:从名称中带有空格的文件导入特定函数[重复]

问题描述 投票:0回答:1

我正在尝试从 .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 import whitespace python-import
1个回答
0
投票

根据要求编辑答案:
来源:如何在 python 中导入名称中带有空格的文件?.

在不使用 importlib 的情况下从名称中带有空格的模块导入单个函数是根本不可能的,因为这里你唯一的武器是

__import__

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

重要通知

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

示例

文件1.py

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

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

主.py

globals()["foo"] = getattr(__import__("File 1"),"foo")
© www.soinside.com 2019 - 2024. All rights reserved.