Python 在阵列中存储来自多个文件的数据列表

Python 在阵列中存储来自多个文件的数据列表,python,file-io,tkinter,Python,File Io,Tkinter,好的,我正在做的是只获取一个.log文件的内容,将其存储在一个数组中,然后将其输出到一个多列表框中,如下所示: filelog_ext=".log" #log extension #open one log file f = open("%s\%s%s" % (path,filename,filelog_ext),"r") #init aray array = [] #copy contents of file to array for line in f: array.a

好的,我正在做的是只获取一个.log文件的内容,将其存储在一个数组中,然后将其输出到一个多列表框中,如下所示:

filelog_ext=".log" #log extension

#open one log file
f = open("%s\%s%s" % (path,filename,filelog_ext),"r")
#init aray      
array = []
#copy contents of file to array
for line in f:
    array.append( line )
f.close()
#insert each array content to multilistbox
self.mlb.insert (END, ('%s' % (array[0]),'%s' % (array[1]),'%s' % (array[2]),'%s' % array[3])))
    self.mlb.pack (expand=YES,fill=BOTH)
我现在要做的是获取许多.log文件的内容,以数组的形式输出它们,然后以多列表框的形式输出它们

我尝试了以下方法,但似乎不起作用:

for files in os.listdir("."):        
        if files.endswith(".log"):  #this will take all my files ending with .log

    #not sure how to go about and take all files ending with .log, copying them to array and saving them to the multilistbox mlb
有人能帮我吗

更新: @约翰·兹温克 我试着整合你的代码,不知道我做的是否正确,但仍然不起作用。错误为“索引列表超出范围”

像这样的

import glob
import os

filelog_ext=".log" #log extension
array = []

for filename in glob.iglob(os.path.join(path, filelog_ext)):
    with open(filename) as f:
        array.extend(f)

array.extend(f)实际上做什么?我已经更新了代码@John Zwink,请告诉我它是否正确。extend将其参数中的所有项放在列表的末尾。因此,循环完成后,数组将包含所有文件中的所有行。数组大小应为4,因为每个日志文件中有4个条目。此外,我的multilistbox支持4列中插入的4项。是否可以迭代以下内容(1)打开一个.log文件(2)将日志文件中的4行复制到一个数组(3)使用4行数组附加我的multilistbox(4)循环此过程,但我不会继续为您编写Python。:)我想您现在已经有了所需的片段。您的文件没有4行?我说不出来:您希望将第一行的第一个标记作为数组[0],还是将每个文件的第一行作为数组[0]?
import glob
import os

filelog_ext=".log" #log extension
array = []

for filename in glob.iglob(os.path.join(path, filelog_ext)):
    with open(filename) as f:
        array.extend(f)