我想读取文件夹中除名为“xyz”的文件以外的所有文件。当我到达这个文件时,我想跳过它并阅读下一个文件。
目前我有以下代码:
for file in glob.glob('*.xml'):
data = open(file).read()
print(file)
显然,这将读取该文件夹中的所有文件。我应该如何跳过文件“xyz.xml”
答案 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')