Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果我没有';直到运行时才知道文件名?_Python_Python 2.7 - Fatal编程技术网

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
的使用。