我正在寻找下面解决方案的简化方法。
这就是我打算在这里做的:
-
遍历文件夹中的文件
-
查找文件匹配模式
-
分裂文件名
-
查找对应的新文件
-
如果没有找到,则删除原始文件
import os
for root, dirs, files in os.walk('folder'):
for old_file in files:
if fnmatch.fnmatch(old_file, 'pattern'):
spl = old_file.rsplit('_')
new_file = os.path.isfile(f'folder/xxx_{int(spl[6])*2}_{int(spl[7])*2}_yyy.txt')
if not new_file:
# delete old_file
您可以使用带有相反条件的continue语句来继续删除旧文件,而不需要嵌套条件:
import os
for root, dirs, files in os.walk('folder'):
for old_file in files:
if not fnmatch.fnmatch(old_file, 'pattern'): continue
spl = old_file.rsplit('_')
new_file = os.path.isfile(f'folder/xxx_{int(spl[6])*2}_{int(spl[7])*2}_yyy.txt')
if new_file: continue
# delete old_file