WinError 2:Python调用os.remove删除文件时提示找不到文件求助
解决os.remove()触发WinError 2找不到文件的问题
问题根源
os.listdir(r"All Posts")返回的只是目标目录里的纯文件名,而os.remove()默认会在当前Python脚本的工作目录下去找这个文件,显然文件实际在All Posts子目录里,所以会触发找不到文件的错误。你说尝试绝对路径没用,大概率是没正确把目录路径和文件名拼接起来。
修复方案
方法1:用os.path.join拼接完整路径
把目录路径和文件名拼接成完整路径再传入os.remove():
import os target_dir = r"All Posts" for filename in os.listdir(target_dir): # 拼接完整文件路径 file_path = os.path.join(target_dir, filename) # 可选:先判断是不是文件,避免误删目录 if os.path.isfile(file_path): os.remove(file_path)
方法2:用pathlib(Python3.4+推荐)
pathlib是更现代的文件路径处理库,写法更直观:
from pathlib import Path target_dir = Path(r"All Posts") for file_path in target_dir.iterdir(): if file_path.is_file(): file_path.unlink()
额外提示
- 如果你要用绝对路径,只需要把
target_dir换成完整的绝对路径即可,比如r"C:\Users\XXX\Documents\All Posts",两种方法都支持绝对路径。 - 加上
isfile/is_file判断是为了防止目录里还有子目录,避免尝试删除目录触发新的错误。
内容的提问来源于stack exchange,提问作者Vibe Improvement
相关产品推荐
相关产品推荐

