在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))
,并表示歉意。谢谢,并表示歉意。