python - Python 使用 map 和 os.remove 删除多个文件
问题描述
我正在尝试使用此方法删除多个文件:
map(os.remove, glob.glob("*.pdf"))
我正在获取带有 pdf 扩展名的文件列表,但这不会删除任何文件。
我的解决方案是用list()
.
任何其他不需要使用列表或其他东西的解决方案?
解决方案
使用for
循环:
for i in glob.glob('*.pdf'):
os.remove(i)
map(...)
其本身不起作用的原因是map(...)
它将返回一个生成器,并且它只会在从生成器实际访问项目时评估表达式。
此外,重点map(...)
是对每个项目调用的函数返回的表达式的结果进行分组,但这在这里没有真正意义,因为os.remove(...)
它并没有真正返回任何东西(或者,换句话说,返回None
),因此,由于组装None
s 列表并没有真正起到多大作用(无论如何你都会立即将其扔掉),因此使用for
循环是处理此任务的更合适的方法。
推荐阅读
- java - 如何处理未使用的@Override 方法?
- javascript - threejs 线跟随几何
- tcl - 访问在不同命名空间中打开的文件处理程序
- proxy - CNTLM 代理和 .pac 文件
- dask - 如何使用 dask 将 SVC 分发给不同的工作人员(在其他计算机上)
- python - 在 Pytorch 中计算欧几里得范数.. 难以理解实现
- java - 在 Windows 中创建的 tar.gz 在 linux 下无法正确解包 - ArchiverFactory / org.rauschig.jarchivelib.Archiver
- google-cloud-datastore - 查询时间:云数据存储
- java - Maven 清理包的模块问题
- java - Spring Security getAuthenticationManager() 在自定义过滤器中返回 null