python 把一個檔案夾下的docx轉化為doc

來源:互聯網
上載者:User

因為要用java批量處理word文檔的需要,需要用到的類型是doc,可是待處理的文檔卻是docx格式的,所以有了批量將docx轉化為doc的需要,下面的指令碼用於遍曆一個檔案夾下將所有的docx文檔另存新檔doc,普通的重新命名雖然最終得到的doc可以用docx開啟操作,但其實內部的格式與doc是不吻合的,當用java的第三方工具讀取時會出錯,下面的函數應用到了python win32 的功能,SaveAs(docxFullName,1)中,後面的參數設為1,那麼儲存得到的檔案將是doc格式的

#coding=gb2312

from win32com import client as wc
import os
word = wc.Dispatch('Word.Application')

#word.Visible = True #是否可見  
#word.DisplayAlerts = 0  
def docx2doc(dir):
    i=0
    j=0
    for path, subdirs, files in os.walk(dir):
        for wordFile in files:
            

            wordFullName = os.path.join(path, wordFile)
            
            dotIndex = wordFile.rfind(".")
            
            if(dotIndex!=-1):
                try:    
                    fileSuffix = wordFile[(dotIndex + 1) : ]
                    if(fileSuffix == "docx"):
                        fileName = wordFile[:dotIndex]
                        docxName = fileName + ".doc"
                
                        docxFullName = os.path.join(r'E:\docx2docResult', docxName)
                        print '正在轉化:'+wordFullName
                        doc = word.Documents.Open(wordFullName)
                        i+=1
                        doc.SaveAs(docxFullName,1)
                        doc.Close()
                except Exception:
                    j+=1
                    print wordFullName+':該檔案儲存失敗****************************************'

                

    word.Quit()
    print '嘗試轉換'+str(i)+'個docx'
    print '其中成功的有:'+str(i-j)+'個'
    print '失敗的共有:'+str(j)+'個'
    
if __name__ == '__main__':
    
    docx2doc(r"E:\folder")
    
    
    
    

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.