python读取文件夹中除"xyz"以外的所有文件
我想读取一个文件夹里的所有文件,但有一个文件叫“xyz”,我想跳过它,直接读取下一个文件。
现在我有以下这段代码:
for file in glob.glob('*.xml'):
data = open(file).read()
print(file)
显然,这段代码会读取文件夹里的所有文件。那么我应该怎么做才能跳过“xyz.xml”这个文件呢?
5 个回答
1
你可以使用glob来进行比较简单的模式匹配,但要记住,glob的匹配规则和正则表达式是不一样的!下面的代码可以帮助你排除所有以'X'开头的xml文件。
files = glob.glob('[!X]*.xml')
2
for file in [f for f in glob.glob('*.xml') if f != "xyz.xml"]:
do_stuff()
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
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
2
为了完整起见,因为没有人发布最明显的版本:
for file in glob.glob('*.xml'):
if file != 'xyz.xml':
data = open(file).read()
print(file)
5
continue
这个关键词在for循环中很有用,它可以让你跳过当前这次循环的剩下部分,直接进入下一次循环。
for file in glob.glob('*.xml'):
if file=="xyz.xml":
continue
data = open(file).read()
print(file)