我有一个要使用Python解析的文件目录。如果它们都是相同的扩展名,我不会有问题,但是无论出于何种原因,它们都是在原始扩展名之后使用顺序数字扩展名创建的。例如:foo.log foo.log.1 foo.log.2 bar.log bar.log.1 bar.log.2 etc.
最重要的是,foo.log是XML格式,而bar.log不是。仅读取和解析foo.log.*
和 foo.log
文件的最佳途径是什么?将bar.log
不需要的文件被读取。下面是我的代码:
import os
from lxml import etree
path = 'C:/foo/bar//'
listing = os.listdir(path)
for files in listing:
if files.endswith('.log'):
print files
data = open(os.path.join(path, files), 'rb').read()
tree = etree.fromstring(data)
search = tree.findall('.//QueueEntry')
这不起作用,因为它不会读取任何.log.*
文件,并且解析器会阻塞已读取但不是xml格式的文件。谢谢!
也许glob模块可以帮助您:
import glob
listing = glob.glob('C:/foo/bar/foo.log*')
for filename in listing:
# do stuff
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句