0

我正在搜索一种特定模式并删除文件。我已经编写了以下代码并且它是工作文件但我觉得当我尝试删除文件时我可以减少 for 循环(列表理解除外)

rm_file_pat = ["*.abc*", "*.xyz"]
        rm_file_list = [ glob.glob(f_pat) for f_pat in rm_file_pat]
        for rm_file in rm_file_list:
            for _rm_file in rm_file:
                os.remove(_rm_file)
4

2 回答 2

1

您可以展平rm_file_list使用chain.from_iterable,然后简单地遍历列表

import itertools
for rm_file in itertools.chain.from_iterable(rm_file_list):
    os.remove(rm_file)
于 2013-11-13T05:34:02.350 回答
1
from glob import glob
rm_file_pat = ["*.abc*", "*.xyz"]
for rm_file in (fn for f_pat in rm_file_pat for fn in glob(f_pat))
    os.remove(rm_file)
于 2013-11-13T05:47:06.583 回答