簡體   English   中英

如果在運行時之前我不知道文件名,如何從文件導入?

[英]how do I import from a file if I don't know the file name until run time?

我想做這個:

from fileName import variableName

如果我硬編碼fileName沒有問題。 但我需要使用fileName作為字符串變量,這似乎不起作用。

問題的上下文是我正在嘗試創建一個以文件名作為參數的函數。 該函數從參數中給出的任何文件中導入variableName,然后返回variableName的值,該值將是一個列表。 參數中可能給出的每個文件只包含一個python語句,例如:

data = [xxxxx]

除了內容(xxxx)是幾千行之外。 只是將一個字符串或一個計算字符串的變量放入“from ...”語句的第二個單詞中就不會編譯。 我還嘗試構建一個包含整個語句然后執行eval(字符串)的字符串,但這也給出了“無效語法”。我怎么能這樣做呢?文檔說'from ...'語句不是編譯器指令但是在運行時評估,所以我認為這應該工作。

使用importlib.import_module函數:

import importlib

fileName = ['a','b','c']
for file in fileName:
    module = importlib.import_module(file)
    data.append(module.variableName)

這相當於:

from a import variableName
from b import variableName
from c import variableName

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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