加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如果在运行时之前我不知道文件名,如何从文件导入?

发布时间:2020-12-16 21:32:34 所属栏目:Python 来源:网络整理
导读:我想做这个: from fileName import variableName 如果我硬编码fileName没有问题.但我需要使用fileName作为字符串变量,这似乎不起作用. 问题的上下文是我正在尝试创建一个以文件名作为参数的函数.该函数从参数中给出的任何文件中导入variableName,然后返回va
我想做这个:
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

希望这可以帮助!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读