[英]Python 3.5: Importing a specific function from a file with a space in its name
我試圖從標題中有空格的 .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!")
主文件
globals()["foo"] = getattr(__import__("File 1"),"foo")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.