擅长:python、mysql、java
<p>您可以边过滤边传递要保留的扩展名的元组,并使用any过滤这些扩展名,以从排除的子字符串列表中删除任何具有匹配扩展名但不包含任何子字符串的文件。你知道吗</p>
<pre><code>exc = [LIST OF EXCLUDED SUFFIXES]
import os
for f in os.listdir("path"):
if f.endswith((".mp4",".mp3",".avi")) and not any(e in f for e in exc):
</code></pre>
<p>只需对目录内容进行一次传递,无需首先构建列表。你知道吗</p>
<p>如果您想替换禁止的子字符串,而不只是排除,您可以使用回复sub地址:</p>
<pre><code>import os
import re
r = re.compile(r"|".join([e for e in exc]))
for f in os.listdir("path"):
if f.endswith((".mp4",".mp3",".avi")):
f = r.sub("",f)
</code></pre>