Python 在阵列中存储来自多个文件的数据列表
好的,我正在做的是只获取一个.log文件的内容,将其存储在一个数组中,然后将其输出到一个多列表框中,如下所示: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
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)