从python列表中删除特定文件夹?

时间:2020-06-13 17:45:43

标签: python

我正在用os.listdir列出文件夹中的所有文件,并且想知道如何运行循环以删除该列表中不以.exe,.jpg和等等。

2 个答案:

答案 0 :(得分:1)

我不会为您编写完整的解决方案,但这是您自己编写代码所需的组件。

  1. os.listdir列出文件(您已经知道了)
  2. os.path.isfile是为了不删除带有扩展名的奇怪名称的目录
  3. os.path.split以获取文件扩展名
  4. os.remove删除文件。

(我假设您要删除文件,而不是文件夹。如果您确实要删除文件夹,请使用os.path.isdir而不是os.path.isfile。)

答案 1 :(得分:0)

假设您的列表是

>>> mylist
['hello.exe', 'abc.jpg', 'that', 'bro']

,并且您要删除thatbro文件,因为它们没有扩展名.jpg.exe。因此,我们使用来自Python的del运算符。

这是代码:

>>> for i in range(len(mylist)):
...    if not (".exe" in mylist[i] or ".jpg" in mylist[i]):
...       del mylist[i]
...       i = i-1

现在,如果我们检查mylist的输出是

>>> mylist
['hello.exe', 'abc.jpg']

通常要从计算机中删除文件,必须使用os.remove。所以你可以尝试

 location = "/home/User/Documents" #your path to in which you want to del file
 for i in range(len(mylist)):
    if not (".exe" in mylist[i] or ".jpg" in mylist[i]):
       os.remove(mylist[i])
       del mylist[i]
       i = i-1