在python中使用for循环从多个文件导入列表
这可能是一个相当简单的问题,但似乎无法解决它或找到任何与此问题有关的问题在python中使用for循环从多个文件导入列表,python,for-loop,import,Python,For Loop,Import,这可能是一个相当简单的问题,但似乎无法解决它或找到任何与此问题有关的问题 xcombined=[] for i in range (1,20): from 'files_'+str(i) import x for j in range(0,len(x)): xcombined.append(x[j]) 导致以下错误: import "files_"+str(i) ^ SyntaxError: invalid synta
xcombined=[]
for i in range (1,20):
from 'files_'+str(i) import x
for j in range(0,len(x)):
xcombined.append(x[j])
导致以下错误:
import "files_"+str(i)
^
SyntaxError: invalid syntax
我希望从files_1.py、files_2.py等导入一个列表(即x=[15.34,…,15.54]),并将其附加到另一个名为xcombined的列表中,以便xcombined是所有“files_u*.py”中所有“x”的总和。如果我是正确的,“文件”+str(I)不能工作,因为它不是字符串?有没有快速解决这个问题的方法
提前谢谢。
Paul在这里使用
importlib
模块,因为import
语句不能处理字符串
import importlib
xcombined=[]
for i in range (1,20):
mod = importlib.import_module('files_'+str(i))
x = mod.x # fetch `x` from the imported module
del mod # now delete module, so this is equivalent to: `from mod import x`
for j in range(0,len(x)):
xcombined.append(x[j])
importlib
是在py2.7中引入的,对于早期版本,请使用\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
有关导入的帮助信息:
>>> print __import__.__doc__
__import__(name, globals={}, locals={}, fromlist=[], level=-1) -> module
Import a module. Because this function is meant for use by the Python
interpreter and not for general use it is better to use
importlib.import_module() to programmatically import a module.
...
在这里使用importlib
模块,因为import
语句不能处理字符串
import importlib
xcombined=[]
for i in range (1,20):
mod = importlib.import_module('files_'+str(i))
x = mod.x # fetch `x` from the imported module
del mod # now delete module, so this is equivalent to: `from mod import x`
for j in range(0,len(x)):
xcombined.append(x[j])
importlib
是在py2.7中引入的,对于早期版本,请使用\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
有关导入的帮助信息:
>>> print __import__.__doc__
__import__(name, globals={}, locals={}, fromlist=[], level=-1) -> module
Import a module. Because this function is meant for use by the Python
interpreter and not for general use it is better to use
importlib.import_module() to programmatically import a module.
...
据我所知,您正在使用.py
文件将列表存储为python代码
这是非常无效的,可能会导致许多问题。最好使用简单的文本文件(例如JSON格式)
不过,以下是您应该如何导入具有动态生成名称的模块:
import importlib
i = 1
myModule = importlib.import_module('files_'+str(i))
据我所知,您正在使用.py
文件将列表存储为python代码
这是非常无效的,可能会导致许多问题。最好使用简单的文本文件(例如JSON格式)
不过,以下是您应该如何导入具有动态生成名称的模块:
import importlib
i = 1
myModule = importlib.import_module('files_'+str(i))
python 2.6上是否存在importlib(这是我的works linux box的版本)。从运行这个命令开始,它就不存在了?@PaulWright try\uuuu import\uuuu('files\uu'+str(i))
在py2.6上是否存在importlib在Python2.6上(这是我的works linux box的版本)。从运行这个开始,它就不会在py2.6Thanks上尝试\uuuu import\uuuu('files\u'+str(i))
,并表示歉意。谢谢,并表示歉意。