python读取文件夹中除名为“xyz”的文件之外的所有文件

时间:2014-08-25 20:55:33

标签: python

我想读取文件夹中除名为“xyz”的文件以外的所有文件。当我到达这个文件时,我想跳过它并阅读下一个文件。

目前我有以下代码:

for file in glob.glob('*.xml'):
    data = open(file).read()
    print(file)

显然,这将读取该文件夹中的所有文件。我应该如何跳过文件“xyz.xml”

5 个答案:

答案 0 :(得分:4)

continue关键字对于跳过for循环的迭代非常有用:

for file in glob.glob('*.xml'):
    if file=="xyz.xml":
        continue
    data = open(file).read()
    print(file)

答案 1 :(得分:2)

for file in [f for f in glob.glob('*.xml') if f != "xyz.xml"]:
    do_stuff()

答案 2 :(得分:2)

尝试此操作,假设要删除的元素位于glob.glob()返回的列表中(如果不能保证,请将remove()行放在try块中):

lst = glob.glob('*.xml')
lst.remove('xyz.xml') # assuming that the element is present in the list
for file in lst:
    pass

或者,如果您关心内存使用情况,请使用生成器:

for file in (file for file in glob.glob('*.xml') if file != 'xyz.xml'):
    pass

答案 3 :(得分:2)

为了完整起见,没有人发布最明显的版本:

for file in glob.glob('*.xml'):
    if file != 'xyz.xml':
        data = open(file).read()
        print(file)

答案 4 :(得分:0)

您可以使用glob进行非常简单的模式匹配,但请记住,glob的模式规则不是正则表达式! 下面的代码可以帮助您排除所有以'X'开头的xml文件

files = glob.glob('[!X]*.xml')