Python 如果我没有';直到运行时才知道文件名?
我想这样做:Python 如果我没有';直到运行时才知道文件名?,python,python-2.7,Python,Python 2.7,我想这样做: from fileName import variableName 如果我硬编码文件名,就没有问题了。但我需要将文件名作为一个字符串变量,这似乎不起作用 问题的背景是,我试图创建一个以文件名为参数的函数。函数从参数中给定的任何文件导入variableName,然后返回variableName的值,该值将是一个列表。参数中可能给出的每个文件只包含一条python语句,例如: data = [xxxxx] 除了内容(xxxx)有几千行。仅仅将一个字符串或一个计算结果为字符串的变量放
from fileName import variableName
如果我硬编码文件名,就没有问题了。但我需要将文件名作为一个字符串变量,这似乎不起作用
问题的背景是,我试图创建一个以文件名为参数的函数。函数从参数中给定的任何文件导入variableName,然后返回variableName的值,该值将是一个列表。参数中可能给出的每个文件只包含一条python语句,例如:
data = [xxxxx]
除了内容(xxxx)有几千行。仅仅将一个字符串或一个计算结果为字符串的变量放入“from…”语句的第二个单词中是不会编译的。我还尝试构建一个包含整个语句的字符串,然后执行eval(string),但这也会给出“无效语法”。我还可以怎么做呢?文档中说“from…”语句不是编译器指令,而是在运行时进行计算的,所以我认为这应该行得通。使用函数:
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
希望这有帮助!Hmmm。我不知道。我会试试。非常感谢。在几个错误的开始后,这非常有效。添加“导入导入导入库”“在顶端。创建名为a.py、b.py和c.py的3个测试文件。是的,这只是为了显示一个示例
a
、b
和c
只是我提供的一个示例,用于说明importlib
的使用。