如何用os库批量删除glob匹配的.xls文件?解决类型错误问题
问题解决:批量删除.xls文件的TypeError修复
错误原因
glob.glob()执行后返回的是匹配到的所有.xls文件路径的列表,但os.remove()的参数要求是单个字符串/字节/路径对象,直接传入列表就会触发TypeError: remove: path should be string, bytes or os.PathLike, not list。
另外原代码的路径存在转义风险:"C:\user\Documents\"里的\u会被Python识别为转义序列,可能导致路径解析错误,建议改用原始字符串(加前缀r)或者双反斜杠。
修正代码
import os import glob # 使用原始字符串避免转义问题 location = r"C:\user\Documents\" # 获取所有匹配的.xls文件路径列表 file_xls = glob.glob(location + "*.xls") # 遍历列表,逐个删除文件 for file_path in file_xls: try: os.remove(file_path) print(f"已删除: {file_path}") except Exception as e: print(f"删除失败 {file_path}: {str(e)}")
补充说明
- 加
try-except是为了处理异常情况(比如文件正在被占用、无权限删除等),避免程序直接崩溃 - 如果需要递归删除子目录下的.xls文件,可以改用
glob.glob(location + "**/*.xls", recursive=True)
内容的提问来源于stack exchange,提问作者Mathéo Pérez
相关产品推荐
相关产品推荐

