首页 > 解决方案 > 如何通过避免在python中嵌套来简化下面的代码?

问题描述

我正在寻找以下解决方案的简化方法。

这就是我计划在这里做的事情:


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

标签: python

解决方案


您可以使用带有相反条件的 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

推荐阅读