首页 > 解决方案 > Python 使用 map 和 os.remove 删除多个文件

问题描述

我正在尝试使用此方法删除多个文件:


map(os.remove, glob.glob("*.pdf"))

我正在获取带有 pdf 扩展名的文件列表,但这不会删除任何文件。

我的解决方案是用list().

任何其他不需要使用列表或其他东西的解决方案?

标签: pythonoperating-systemglob

解决方案


使用for循环:

for i in glob.glob('*.pdf'):
    os.remove(i)

map(...)其本身不起作用的原因是map(...)它将返回一个生成器,并且它只会在从生成器实际访问项目时评估表达式。

此外,重点map(...)是对每个项目调用的函数返回的表达式的结果进行分组,但这在这里没有真正意义,因为os.remove(...)它并没有真正返回任何东西(或者,换句话说,返回None),因此,由于组装Nones 列表并没有真正起到多大作用(无论如何你都会立即将其扔掉),因此使用for循环是处理此任务的更合适的方法。


推荐阅读