extraction par lots en utilisant des images de documents docx python

Note: Cette méthode ne peut être utilisée pour le document docx, doc ne le fera pas, doc a été enregistré en tant que le fichier Html, entrez le dossier où ces pages, vous trouverez un nom pour le « nom de fichier » .files (par exemple " photos .files « ), entrent en face d'une image dans un document Word est enregistré à onze là-dedans.
Problème Point rencontré lors de l'extraction, 1, ne peut pas déballer, 2, ne peut pas le dossier de suppression, 3, ne peut pas déplacer des fichiers avec essayer de résoudre le
#revised par Stephen Shen 08/03/2020 19:51:46
photos d'extrait de #chemin de fichiers * .docx
importation zipfile
import os, shutil
import datetime
# Send2trash importation
# De temporaryDirectory d'importation tempfile

def renameFile (dstpath):
    fdirname, fbasename = os.path.split (dstpath)
    # Nom de fichier, mais même de taille différente
    fname, FEXT = os.path.splitext (fbasename)
    nowtime = datetime.datetime.now ()                
    strTime = str (nowtime.year) + str (nowtime.month) + str (nowtime.day) + str (nowtime.hour) + str (nowtime.minute)
    newfbasename = fname + '-' + strTime + FEXT
    dstpath = os.path.join (fdirname, newfbasename)
    retour dstpath

def extractPics (doc_inpath, OutDir, zipDir):
    
    file_ext = [ 'docx']
    dirPath, fname, FEXT = splitPath (doc_inpath)

    si FEXT en file_ext:
        imprimer (doc_inpath + 'est extrayait ...)
        fnameNew = fname.strip ()
        out_dir = os.path.join (OutDir, fnameNew)
        sinon os.path.exists (out_dir): # dossier n'existe pas
            si len (os.path.split (out_dir) [- 1])> 200:
                print ( 'dirname est trop long:' + out_dir)
            autre:
                os.mkdir (out_dir)
        else: # dossier existe déjà
            nowtime = datetime.datetime.now ()                
            strTime = str (nowtime.year) + str (nowtime.month) + str (nowtime.day) + str (nowtime.hour) + str (nowtime.minute)
            out_dir = os.path.join (OutDir, fnameNew + '-' + strTime)

        zip_path = os.path.join (zipDir, 'docx.zip')
        shutil.copyfile (doc_inpath, zip_path)
        # Zip_path = os.path.join (zip_dir, fnameNew + '. Zip)
        # Os.rename (copy_path, zip_path)

        essayer:
            avec zipfile.ZipFile (zip_path, 'r') sous la forme f:
                f.extractall ()
        sauf:
            imprimer (zip_path + 'ne peut pas être extrait)
        autre:
            picsDir = os.path.join (zipDir, 'mot / media')

            si os.path.exists (picsDir):
                de pic dans os.listdir (picsDir):
                    oldpic = os.path.join (picsDir, pic)
                    newpic = os.path.join (out_dir, pic)
                    essayer:
                        shutil.move (oldpic, newpic)
                    sauf:
                        imprimer (doc_inpath + 'est sautée')
        
        filelist = os.listdir (zipDir)                
        pour f dans la liste de fichiers:
            filepath = os.path.join (zipDir, f)   
            si os.path.isfile (filepath):
                os.remove (filepath)
            elif os.path.isdir (filepath):
                shutil.rmtree (filepath, True)

def splitPath (doc_inpath):
    dirPath = os.path.dirname (doc_inpath)
    fname, FEXT = os.path.splitext (os.path.basename (doc_inpath))
    retour dirPath, fname, FEXT

OUTDIR = R'k: / fileExtracted / imagesFromDocs'
zipDir = R'k: / fileExtracted / zip »
# DOCDIR = R'k: \ imagsDocx »
docdir = R'k: / docs'

sinon os.path.exists (OUTDIR):
    os.makedirs (OUTDIR)
sinon os.path.exists (zipDir):
    os.makedirs (zipDir)

pour le dossier, subFolderName, les fichiers os.walk (DOCDIR):

    pour le fichier dans les fichiers:
        doc_inpath = os.path.join (dossier, fichier)
        os.chdir (zipDir)
        extractPics (doc_inpath, OutDir, zipDir)
        
print ( 'fait')

Je suppose que tu aimes

Origine www.cnblogs.com/dogingate/p/12524296.html
conseillé
Classement