我编写了代码来检测目录中的所有.exe文件,但是它删除了文件夹中的所有内容。如何更改代码以使其仅删除.exe文件?
import os
import shutil
dir_name = "/Users/plapl/Downloads/"
source = os.listdir("/Users/plapl/Downloads/")
for files in source:
if files.endswith(".exe"):
shutil.rmtree(dir_name, files)
答案 0 :(得分:2)
您只能删除带有shutil.rmtree
的目录,而不能删除文件(请参阅https://docs.python.org/3/library/shutil.html#shutil.rmtree)。
您应该改用pathlib
或os
。
os.remove(f'{dir_name}/{files}')
pathlib.Path(f'{dir_name}/{files}').unlink()
答案 1 :(得分:2)
shutil.rmtree
删除其第一个参数指定的整个目录。 shutil.rmtree
的第二个参数是ignore_errors
,告诉函数是否忽略发生的错误。它不是要删除的文件。
shutil.rmtree
对于要完成的工作是完全不合适的工具。您需要类似os.remove
的东西。