pythonのdocx文書画像を使用してバッチ抽出

注:このメソッドは、文書のみのdocxファイルに使用することができ、ドキュメントはしないだろう、ドキュメントは、「例えば(これらのページは、あなたが「ファイル名.files」の名前を見つけますファイルフォルダを入力して、HTMLファイルとして保存されました写真の.files「)は、そこに11に保存されたWord文書の絵の前でそれを入力してください。
、1を抽出する際のポイントの問題が発生した、アンパック、2、消去フォルダー、3することはできません、解決しようとすると、ファイルを移動することはできませんすることはできません
スティーブン・シェン2020年3月8日夜07時51分46秒で#revised
* .docxのファイルから抽出の写真#to
インポートzipファイル
輸入OS、shutil
インポート日時
#インポートsend2trash
一時ファイルのインポートTemporaryDirectoryから#

デフでrenameFile(dstpath):
    fdirname、fbasename = os.path.split(dstpath)
    #同じファイル名が、サイズの異なります
    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)
    リターンdstpath

デフextractPics(doc_inpath、OUTDIR、zipDir):
    
    file_ext = [ 'docxファイル']
    dirPathの、FNAME、FEXT = SPLITPATH(doc_inpath)

    file_extでFEXT場合:
        印刷(doc_inpath + 'を抽出しています...')
        fnameNew = fname.strip()
        OUT_DIR = os.path.join(OUTDIR、fnameNew)
        そうでない場合はos.path.exists(OUT_DIR):#フォルダが存在しません。
            lenの場合(os.path.split(OUT_DIR)[ - 1])> 200:
                印刷( 'dirnameが長すぎる:' + OUT_DIR)
            そうしないと:
                os.mkdir(OUT_DIR)
        他:#フォルダが既に存在しています
            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 + 'ジッパー')
        #os.rename(copy_path、zip_path)

        試してみてください。
            zipfile.ZipFile Fとして(zip_path、R '')を有します。
                f.extractall()
        除きます:
            印刷(zip_path +「を抽出することができません」)
        そうしないと:
            picsDir = os.path.join(zipDir、 '単語/メディア')

            もしos.path.exists(picsDir):
                os.listdir(picsDir)でPIC用:
                    oldpic = os.path.join(picsDir、PIC)
                    newpic = os.path.join(OUT_DIR、PIC)
                    試してみてください。
                        shutil.move(oldpic、newpic)
                    除きます:
                        印刷(doc_inpath + 'はスキップされています')
        
        ファイル一覧= os.listdir(zipDir)                
        ファイル・リスト内のfに対する:
            ファイルパス= os.path.join(zipDir、F)   
            os.path.isfile(ファイルパス)の場合:
                os.remove(ファイルパス)
            elifのos.path.isdir(ファイルパス):
                shutil.rmtree(ファイルパス、真の)

デフSPLITPATH(doc_inpath):
    dirPathの= os.path.dirname(doc_inpath)
    FNAME、FEXT = os.path.splitext(os.path.basename(doc_inpath))
    リターンdirPathの、fnameは、FEXT

OUTDIR = r'k:/ fileExtracted / imagesFromDocs'
zipDir = r'k:/ fileExtracted /ジップ」
#DOCDIR = r'K:\ imagsDocx」
DOCDIR = r'K:/ドキュメント

そうでない場合はos.path.exists(OUTDIR):
    os.makedirs(OUTDIR)
そうでない場合はos.path.exists(zipDir):
    os.makedirs(zipDir)

フォルダのため、subFolderName、os.walk内のファイル(DOCDIR):

    ファイル内のファイルのために:
        doc_inpath = os.path.join(フォルダ、ファイル)
        os.chdir(zipDir)
        extractPics(doc_inpath、OUTDIR、zipDir)
        
(「行わ」)印刷

おすすめ

転載: www.cnblogs.com/dogingate/p/12524296.html