是否使用python删除文件夹和子文件夹中的pdf文件?
我尝试删除300个pdf文件。所有的pdf文件都有不同的名称,它们都分布在一个大文件夹中,这个文件夹分为许多子文件夹和子文件夹。如何使用python(我使用的是python 2.7.8)?使用,可以递归删除目录是否使用python删除文件夹和子文件夹中的pdf文件?,python,python-2.7,pdf,delete-file,Python,Python 2.7,Pdf,Delete File,我尝试删除300个pdf文件。所有的pdf文件都有不同的名称,它们都分布在一个大文件夹中,这个文件夹分为许多子文件夹和子文件夹。如何使用python(我使用的是python 2.7.8)?使用,可以递归删除目录 import shutil shutil.rmtree('/path/to/directory/that/contains/pdfs') 如果目录包含其他非pdf文件的文件,请改用以下命令(用于递归遍历目录和/或删除pdf文件) os.chdir更改目录。只需做一些调整,以定位到其他目
import shutil
shutil.rmtree('/path/to/directory/that/contains/pdfs')
如果目录包含其他非pdf
文件的文件,请改用以下命令(用于递归遍历目录和/或删除pdf文件)
os.chdir
更改目录。只需做一些调整,以定位到其他目录
#!/usr/bin/env python
import glob
import os
directory='/path/folder1/folder2'
os.chdir(directory)
files=glob.glob('*.pdf')
for filename in files:
os.unlink(filename)
如果您只想删除
pdf
文件,则可以使用os.walk
函数和fnmatch.fnmatch
函数
import os
from fnmatch import fnmatch
for dirpath, dirnames, filenames in os.walk(os.curdir):
for file in filenames:
if fnmatch(file, '*.pdf'):
os.remove(os.path.join(dirpath, file))
假设要在维护子文件夹树时删除文件,可以使用递归算法:
import os
def recursively_remove_files(f):
if os.path.isfile(f):
os.unlink(f)
elif os.path.isdir(f):
map(recursively_remove_files, [os.path.join(f,fi) for fi in os.listdir(f)])
recursively_remove_files(my_directory)
我想这会删除目录,但如果目录中包含的文件不是
.pdf
?@Michael9,我会根据您的评论更新答案。非常感谢。
import os
def recursively_remove_files(f):
if os.path.isfile(f):
os.unlink(f)
elif os.path.isdir(f):
map(recursively_remove_files, [os.path.join(f,fi) for fi in os.listdir(f)])
recursively_remove_files(my_directory)