使用Python删除特定文件

17

我有一个处理扩展名为 '.hgx' 的文件的python脚本,例如:test.hgx(存在许多这样的扩展名为hgx的文件)。

该脚本处理test.hgx并创建一个新的test_bac.hgx,在重新运行脚本时会创建test_bac_bac.hgx。因此,每次运行脚本都会创建一个带有“_bac”后缀的文件。

是否有一些解决方案可以在实际代码开始之前删除所有现有的 '_bac' 和 '_bac_bac...' 文件。

我已经在使用glob.glob函数。

for hgx in glob.glob("*.hgx"):  

我可以使用这个函数来删除文件'X_bac.hgx'和其他的_bac_bac..hgx文件吗?

任何帮助/想法都将不胜感激。

谢谢。

3个回答

31
import os
import glob
for hgx in glob.glob("*_bac.hgx"):
  os.remove(hgx)

8
一个非常相似的解决方案将是:
import os
import glob
map(os.remove, glob.glob("*_back.hgx"))

除了表达更加简洁外,你还可以在当前命名空间中节省一个变量名称。


5
在Python 3中,您需要 调用 map 返回的生成器,可能要将其转换为list - uckelman
非常好的答案,解释了很多技术上的理由。FP 是正确的选择!向您致敬。 - joe hoeller
映射不起作用! - marti_

1

glob.glob("*_bac.hgx") 可以获取文件。然后您可以在循环中使用 os.remove 函数来删除文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接