簡體   English   中英

Python 3.5:從名稱中帶有空格的文件中導入特定函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM