Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否使用python删除文件夹和子文件夹中的pdf文件?_Python_Python 2.7_Pdf_Delete File - Fatal编程技术网

是否使用python删除文件夹和子文件夹中的pdf文件?

是否使用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更改目录。只需做一些调整,以定位到其他目

我尝试删除300个pdf文件。所有的pdf文件都有不同的名称,它们都分布在一个大文件夹中,这个文件夹分为许多子文件夹和子文件夹。如何使用python(我使用的是python 2.7.8)?

使用,可以递归删除目录

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)