Python實現批量將word轉html並將html內容發布至網站的方法

來源:互聯網
上載者:User
本文執行個體講述了Python實現批量將word轉html並將html內容發布至網站的方法。分享給大家供大家參考。具體實現方法如下:

#coding=utf-8__author__ = 'zhm'from win32com import client as wcimport osimport timeimport randomimport MySQLdbimport redef wordsToHtml(dir):#批量把檔案夾的word文檔轉換成html檔案 #金山WPS調用,搶先版的用KWPS,正式版WPS word = wc.Dispatch('KWPS.Application') for path, subdirs, files in os.walk(dir):  for wordFile in files:   wordFullName = os.path.join(path, wordFile)   #print "word:" + wordFullName   doc = word.Documents.Open(wordFullName)   wordFile2 = unicode(wordFile, "gbk")   dotIndex = wordFile2.rfind(".")   if(dotIndex == -1):    print '********************ERROR: 未取得尾碼名!'   fileSuffix = wordFile2[(dotIndex + 1) : ]   if(fileSuffix == "doc" or fileSuffix == "docx"):    fileName = wordFile2[ : dotIndex]    htmlName = fileName + ".html"    htmlFullName = os.path.join(unicode(path, "gbk"), htmlName)    # htmlFullName = unicode(path, "gbk") + "\\" + htmlName    print u'產生了html檔案:' + htmlFullName    doc.SaveAs(htmlFullName, 8)    doc.Close() word.Quit() print "" print "Finished!"def html_add_to_db(dir):#將轉換成功的html檔案批量插入資料庫中。 conn = MySQLdb.connect(  host='localhost',  port=3306,  user='root',  passwd='root',  db='test',  charset='utf8'  ) cur = conn.cursor() for path, subdirs, files in os.walk(dir):  for htmlFile in files:   htmlFullName = os.path.join(path, htmlFile)   title = os.path.splitext(htmlFile)[0]   targetDir = 'D:/files/htmls/'   #D:/files為web伺服器配置的靜態目錄   sconds = time.time()   msconds = sconds * 1000   targetFile = os.path.join(targetDir, str(int(msconds))+str(random.randint(100, 10000)) +'.html')   htmlFile2 = unicode(htmlFile, "gbk")   dotIndex = htmlFile2.rfind(".")   if(dotIndex == -1):    print '********************ERROR: 未取得尾碼名!'   fileSuffix = htmlFile2[(dotIndex + 1) : ]   if(fileSuffix == "htm" or fileSuffix == "html"):    if not os.path.exists(targetDir):     os.makedirs(targetDir)    htmlFullName = os.path.join(unicode(path, "gbk"), htmlFullName)    htFile = open(htmlFullName,'rb')    #擷取網頁內容    htmStrCotent = htFile.read()    #找出裡面的圖片    img=re.compile(r"""""",re.I)    m = img.findall(htmStrCotent)    for tagContent in m:     imgSrc = unicode(tagContent, "gbk")     imgSrcFullName = os.path.join(path, imgSrc)     #上傳圖片     imgTarget = 'D:/files/images/whzx/'     img_sconds = time.time()     img_msconds = sconds * 1000     targetImgFile = os.path.join(imgTarget, str(int(img_msconds))+str(random.randint(100, 10000)) +'.png')     if not os.path.exists(imgTarget):      os.makedirs(imgTarget)     if not os.path.exists(targetImgFile) or(os.path.exists(targetImgFile) and (os.path.getsize(targetImgFile) != os.path.getsize(imgSrcFullName))):      tmpImgFile = open(imgSrcFullName,'rb')      tmpWriteImgFile = open(targetImgFile, "wb")      tmpWriteImgFile.write(tmpImgFile.read())      tmpImgFile.close()      tmpWriteImgFile.close()      htmStrCotent=htmStrCotent.replace(tagContent,targetImgFile.split(":")[1])    if not os.path.exists(targetFile) or(os.path.exists(targetFile) and (os.path.getsize(targetFile) != os.path.getsize(htmlFullName))):     #用iframe封裝轉換好的html檔案。     iframeHtml='''               '''     tmpTargetFile = open(targetFile, "wb")     tmpTargetFile.write(htmStrCotent)     tmpTargetFile.close()     htFile.close()     try:      # 執行      sql = "insert into common_article(title,content) values(%s,%s)"      param = (unicode(title, "gbk"),iframeHtml)      cur.execute(sql,param)     except:      print "Error: unable to insert data" cur.close() conn.commit() # 關閉資料庫連接 conn.close()if __name__ == '__main__': wordsToHtml('d:/word') html_add_to_db('d:/word')

希望本文所述對大家的Python程式設計有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.