我正在用os.listdir
列出文件夹中的所有文件,并且想知道如何运行循环以删除该列表中不以.exe,.jpg和等等。
答案 0 :(得分:1)
我不会为您编写完整的解决方案,但这是您自己编写代码所需的组件。
os.listdir
列出文件(您已经知道了)os.path.isfile
是为了不删除带有扩展名的奇怪名称的目录os.path.split
以获取文件扩展名os.remove
删除文件。(我假设您要删除文件,而不是文件夹。如果您确实要删除文件夹,请使用os.path.isdir
而不是os.path.isfile
。)
答案 1 :(得分:0)
假设您的列表是
>>> mylist
['hello.exe', 'abc.jpg', 'that', 'bro']
,并且您要删除that
和bro
文件,因为它们没有扩展名.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