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

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

概述我想做这个: from fileName import variableName 如果我硬编码fileName没有问题.但我需要使用fileName作为字符串变量,这似乎不起作用. 问题的上下文是我正在尝试创建一个以文件名作为参数的函数.该函数从参数中给出的任何文件中导入variableName,然后返回variableName的值,该值将是一个列表.参数中可能给出的每个文件只包含一个python 我想做这个:
from filename import variablename

如果我硬编码filename没有问题.但我需要使用filename作为字符串变量,这似乎不起作用.

问题的上下文是我正在尝试创建一个以文件名作为参数的函数.该函数从参数中给出的任何文件中导入variablename,然后返回variablename的值,该值将是一个列表.参数中可能给出的每个文件只包含一个python语句,例如:

data = [xxxxx]

除了内容(xxxx)是几千行之外.只是将一个字符串或一个计算字符串的变量放入“from …”语句的第二个单词中就不会编译.我还尝试构建一个包含整个语句然后执行eval(字符串)的字符串,但这也给出了“无效语法”.我怎么能这样做呢?文档说’from …’语句不是编译器指令但是在运行时评估,所以我认为这应该工作.

解决方法 使用 importlib.import_module功能:
import importlibfilename = ['a','b','c']for file in filename:    module = importlib.import_module(file)    data.append(module.variablename)

这相当于:

from a import variablenamefrom b import variablenamefrom c import variablename

希望这可以帮助!

总结

以上是内存溢出为你收集整理的如果在运行时之前我不知道文件名,如何从文件导入?全部内容,希望文章能够帮你解决如果在运行时之前我不知道文件名,如何从文件导入?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1205000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存