错误:ValueError:list.remove(x):从dir列表中删除文件夹时x不在列表中

时间:2017-06-13 18:56:55

标签: python python-3.x

当我尝试从目录列表中删除.zip文件时,我遇到了上述错误

>>> from os import listdir
>>> from os.path import isfile,join
>>> dr = listdir(r"C:\Users\lenovo\Desktop\ronit")
>>> dr

输出:

['7101', '7101.zip', '7102', '7102.zip', '7103', '7103.zip']

现在删除.zip文件,我写了以下代码:

>>> dr.remove("*.zip")

输出:

Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
dr.remove("*.zip")
ValueError: list.remove(x): x not in list

我哪里错了?

2 个答案:

答案 0 :(得分:2)

list中删除时不能使用通配符,如果要取消部分匹配,则必须遍历它,例如:

filtered_list = [file_name for file_name in dr if file_name[-4:] != ".zip"]
# ['7101', '7102', '7103']

答案 1 :(得分:0)

import os
from os import listdir
from os.path import join

dir = 'C:\\Users\\lenovo\\Desktop\\ronit'
dr=os.listdir(dir)

for f in dr:
    if item.endswith(".zip"):
        os.remove(join(dir, f))