You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python删除列表中匹配的多个文件?现有代码执行失败

解决方法

你的代码问题在于没有把文件路径和文件名拼接起来,程序默认在当前运行目录查找文件,而非你指定的D://photo目录,所以找不到目标文件导致删除失败。

修复后的代码

import os

path = "D://photo"
list1 = ['photo-1777.jpg', 'photo-4277.jpg', 'photo-620.jpg', 'photo-1078.jpg']

for filename in list1:
    # 拼接完整文件路径
    full_path = os.path.join(path, filename)
    if os.path.exists(full_path):
        os.remove(full_path)
        print(f"已删除文件: {full_path}")
    else:
        print(f"文件不存在: {full_path}")

优化说明

  • os.path.join()会自动适配不同系统的路径分隔符(比如Windows的\、Linux的/),比手动拼接字符串更稳妥。
  • 增加打印提示能直观看到操作结果,方便排查哪些文件不存在或已成功删除。

如果你的文件列表特别长,还可以用下面的方式提升效率:

import os

path = "D://photo"
# 转成集合,成员查找速度远快于列表
target_files = {'photo-1777.jpg', 'photo-4277.jpg', 'photo-620.jpg', 'photo-1078.jpg'}

for filename in os.listdir(path):
    if filename in target_files:
        full_path = os.path.join(path, filename)
        os.remove(full_path)
        print(f"已删除文件: {full_path}")

这种方式直接遍历目标目录里的文件,匹配列表后再删除,避免了逐个检查不存在的文件,长列表场景下效率更高。

内容的提问来源于stack exchange,提问作者kali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 04:18:13