Python实现批量将word转html并将html内容发布至网站的方法


Posted in Python onJuly 14, 2015

本文实例讲述了Python实现批量将word转html并将html内容发布至网站的方法。分享给大家供大家参考。具体实现方法如下:

#coding=utf-8
__author__ = 'zhm'
from win32com import client as wc
import os
import time
import random
import MySQLdb
import re
def 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"""<img\s.*?\s?src\s*=\s*['|"]?([^\s'"]+).*?>""",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='''
     <script type="text/javascript" language="javascript">
      function iFrameHeight() {
       var ifm= document.getElementById("iframepage");
       var subWeb = document.frames ? document.frames["iframepage"].document:ifm.contentDocument;
       if(ifm != null && subWeb != null) {
        ifm.height = subWeb.body.scrollHeight;
       }
      }
     </script>
     <iframe src='''+targetFile.split(':')[1]+'''
      marginheight="0" marginwidth="0" frameborder="0" scrolling="no" width="765" height=100% id="iframepage" name="iframepage" onLoad="iFrameHeight()" ></iframe>
     '''
     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程序设计有所帮助。

Python 相关文章推荐
python调用java的Webservice示例
Mar 10 Python
pymongo实现多结果进行多列排序的方法
May 16 Python
python 查找字符串是否存在实例详解
Jan 20 Python
pycharm安装图文教程
May 02 Python
python 爬虫 批量获取代理ip的实例代码
May 22 Python
使用python的pandas为你的股票绘制趋势图
Jun 26 Python
如何运行.ipynb文件的图文讲解
Jun 27 Python
使用python爬取微博数据打造一颗“心”
Jun 28 Python
Python缓存技术实现过程详解
Sep 25 Python
numpy创建单位矩阵和对角矩阵的实例
Nov 29 Python
Python字符串中删除特定字符的方法
Jan 15 Python
在Keras中CNN联合LSTM进行分类实例
Jun 29 Python
Python删除windows垃圾文件的方法
Jul 14 #Python
Python简单计算文件夹大小的方法
Jul 14 #Python
Python判断直线和矩形是否相交的方法
Jul 14 #Python
Python下Fabric的简单部署方法
Jul 14 #Python
python简单获取数组元素个数的方法
Jul 13 #Python
python连接字符串的方法小结
Jul 13 #Python
简单上手Python中装饰器的使用
Jul 12 #Python
You might like
?生?D片??C字串
2006/12/06 PHP
PHP parse_url 一个好用的函数
2009/10/03 PHP
php新建文件自动编号的思路与实现
2011/06/27 PHP
php购物车实现代码
2011/10/10 PHP
用穿越火线快速入门php面向对象
2012/02/22 PHP
php 使用GD库为页面增加水印示例代码
2014/03/24 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
2018/08/21 PHP
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
一个简单的js动画效果代码
2010/07/20 Javascript
jqgrid 简单学习笔记
2011/05/03 Javascript
详解AngularJS中module模块的导入导出
2015/12/10 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
vue3.0中使用element的完整步骤
2021/03/04 Vue.js
Python实现TCP协议下的端口映射功能的脚本程序示例
2016/06/14 Python
python+opencv实现动态物体追踪
2018/01/09 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
Android面试题及答案
2015/09/04 面试题
校园歌咏比赛主持词
2014/03/18 职场文书
入党综合考察材料
2014/06/02 职场文书
资料员岗位职责范本
2015/04/13 职场文书
停课通知书
2015/04/24 职场文书
保密法制宣传月活动总结
2015/05/07 职场文书
党员干部学习心得体会
2016/01/23 职场文书