在os.listdir(path)中使用文件扩展名通配符

德莱顿·朗(Dryden Long):

我有一个要使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用os.listdir()忽略隐藏文件?

如何将Crashlytics与iOS / OS X一起使用今天的扩展名?

将文件扩展名与JavaFX Mac OS X应用程序关联

Python使用os.path lib获取文件名

如何从os.walk中排除文件扩展名

Python:使用os重命名文件时,如何保留文件扩展名?

使用os.listdir读取文件的顺序?

在numpy中使用rstrip删除文件扩展名

os.makedirs错误地在macOS上捕获目录的无扩展名文件

在Python中使用*删除特定扩展名的文件

使OS X的快速外观可用于自定义文件扩展名

在find中使用-exec打印文件扩展名

如何在Windows 7中使用通配符将文件扩展名与程序关联

通过OS X命令行显示/隐藏文件扩展名

如何在Mac OS X的子目录中更改文件扩展名

添加新扩展名时,Mac OS的Libreoffice冻结

使用os.walk过滤文件扩展名,但文件名受限制

Python os.stat不扩展文件名中的通配符

我可以在python的os.path.ismount()中使用通配符吗

使用os.path根据扩展名搜索文件

Pyhton2.7.10:使用os.listdir()打印文件夹中的文件名,但要注意shell

使用 os.listdir 忽略特定文件

使用 os.walk 在目录树下查找具有特定文件扩展名的文件夹

通过通配符排除文件扩展名

為什麼我無法使用 os.listdir 更改 Python 程序中文件的名稱

如何使用 os.listdir 仅选择文件类型?

使用 os.listdir(path) 循环时如何跳过前几个文件?

os.listdir() 在文件名的开头添加字符?

在 linux 中使用 sed 命令更改文件扩展名