编程doc转html,Python批量将word转html,并将html内容发布至网站。

搜索热词

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

#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,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,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='''

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;

}

}

marginheight="0" marginwidth="0" frameborder="0" scrolling="no" width="765" height=100% id="iframepage" name="iframepage" onLoad="iFrameHeight()" >

'''

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,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')

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529038.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python分析工具有哪些_常用Python数据分析工具汇总

Python是数据处理常用工具,可以处理数量级从几K至几T不等的数据,具有较高的开发效率和可维护性,还具有较强的通用性和跨平台性。Python可用于数据分析,但其单纯依赖Python本身自带的库进行数据分析还是具有一定的局限性的&#xf…

python软件是什么原因引起的_Python对程序员重要的原因在哪里?

Python 之父Fredrik Haard最近发表了一篇“为什么Python对你如此重要”的文章,引起了开发者的热烈讨论。我相信Python对软件开发人员很重要。现今已经诞生了不少的编程语言,它们都有各自不同的特性:强大者如Lisp,快速如C&#xff…

大学计算机需要论文吗,关于大学计算机论文范文.docx

关于大学计算机论文范文一:大学计算机基础实验教学课程改革计算机基础是高校非计算机专业非常重要的一门公共基础课程,课程内容是大学生必须掌握的计算机基础知识和操作技能,是大学生走向工作岗位必备的基本素质。计算机基础知识的掌握与实际…

高并发编程_高并发编程系列:全面剖析Java并发编程之AQS的核心实现

在并发编程领域,AQS号称是并发同步组件的基石,很多并发同步组件都是基于AQS实现,所以想掌握好高并发编程,你需要掌握好AQS。本篇主要通过对AQS的实现原理、数据模型、资源共享方式、获取锁的过程,让你对AQS的整体设计有…

python怎么测试c代码_如何正确测试python中的C-API,C-API返回错误代码

我的设置 我正在使用Python中的pytest和ctypes测试C库中的函数。C库中的每个函数调用一个嵌入式linux PCI板上的函数,然后C库函数返回一个整数,该整数映射到一组返回代码。如果函数成功,则返回0,否则返回其他错误代码。在 问题 我…

计算机考试设计会议邀请函,计算机二级常见考点之使用合并技术制作邀请函

计算机01:37来自LearningYard学苑三月份的计算机二级考试即将到来,不知道各位童鞋准备得怎么样了呢,把握了多少。今天小编就给讲讲计算机二级MS office中常见的考核内容——使用合并技术制作邀请函。The computer second-level exam in March is coming …

添加一列_办公软件操作技巧023:如何给excel数据批量添加单位

在日常工作中,我们使用excel编辑电子表格时,经常需要给数据添加单位,单位是编制excel表格常用的元素,有时我们需要给一列数字都添加上单位,比如长度多少米,金额多少元,货物多少公斤等等&#xf…

html代码大全(很全的)_HTML教学(1):写一个属于自己的网址大全(新手版)

超文本标记语言(Hyper Text Markup Language),缩写为HTML,标准通用标记语言下的一个应用。HTML不是一种编程语言,而是一种标记语言 (markup language)只要你打开浏览器,第一眼看到的…

清华大学计算机系高考生源,清华大学在这个高考大省录取人数创新高,网友:仍然是同分不同命...

在众多高考学子眼中,只有“两个学校”,一个是“清华、北大”,一个是“其他学校”,不仅是高考学子,清华、北大在众多人心目中也是十分神圣的。很多学生家长把考上清华、北大作为子女的唯一追求,认为只有考上…

list的contains方法为什么不好使_道理都懂,为什么我们还打不好网球?

中年人的悲哀在于,懂得很多道理,可依然过不好自己的一生。打网球亦是如此。——题记人到中年,有了一定的社会经验,也懂得了很多道理,可大部分人还是过不好自己的生活。正如打网球一样。盯准球、早点打、降低重心、保持…

docker公共存储库_Docker Hub公共镜像仓库的使用

Docker Hub目前 Docker 官方维护了一个公共仓库 Docker Hub,其中已经包括了数量超过 15,000 的镜像。大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。Docker Hub的功能Docker Hub被用于源代码管理集成,也用于构建和测试工具来加速部署周期&am…

html5登录界面源代码_最新版本尤娜博客已更新源代码(速拿!!!)

大家好,我是尤娜博客(una-boot)的作者树下魅狐,自2019年9月una-boot-1.0.0版本开源以来,陆续有热爱技术,钟爱技术写作的小伙伴为尤娜提出了宝贵的改进意见和建议,在此表示衷心的感谢,谢谢大家的支持&#x…

抓包红色_抓包三部曲 WebSocket 协议原理抓包分析

这篇文章通过抓包分析 WebSocket 协议的细节,学习一下 WebSocket 执行流程。1.WebSocket 流程说明(1)客户端和服务器之间完成三次握手建立 TCP 连接(TLS/SSL)握手。(2)客户端发起 HTTP 请求和服务器之间建立 WebSocket 握手。(3)WebSocket 连接建立之后,…

计算机农业sci,IEEE旗下JCR1区智慧农业类SCIEI期刊

原标题:IEEE旗下JCR1区智慧农业类SCI&EI期刊各位学者,EA-ISET 协会(www.ea-iset.org)重点期刊推荐,IEEE旗下JCR1区智慧农业类SCI&EI期刊 ,版面有限,录满即止,具体信息如下:一、期刊信息JCR1区智慧农…

python 多条件 选择 算法_python部署python算法 - 快速寻找满足条件的两个数

题目前提是一定存在这样两个数 解法一就不写了...一般想不到吧 一开始想到的是解法二最后的用hash表 (其实是想到创建一个跟target一样大的数组啦..存在就写入index,但是要全部找出,那得二维数组,但是后面想到target要是很大的话&…

3d打印主要的切片参数类型_3D打印机切片参数详情说明

在使用3D打印机的过程中,切片是一个我们无法避免要操作的步骤,接下来我们将简单介绍一下切片的相关参数。底部类型设置模型打印第一层的类型,以适应不同打印需求Skirt模型底部不与模型接触,确保挤出正常SkirtBrim与模型底部接触&a…

西南科技大学研究生计算机,我们毕业啦……西南科技大学2020研究生毕业记!...

“各位旅客,列车前方到站是终点站,毕业。要下车的乘客,请带好您的行李和贵重物品,准备下车。”每当毕业季来临时,时间的流逝似乎开了倍速,掠过青春的云海,不因剧情的精彩而暂停。近日&#xff0…

决策树和随机森林算法 简介

决策树(Decision Tree) 是一种基础的分类和回归算法随机森林 是由多棵决策树集成在一起的集成学习算法 决策树生成过程: 特征选择决策树生成决策树剪枝 信息熵 用来衡量一个节点内信息的不确定性的。 信息熵越大, 不确定性越大, 样本就越多样, 样本…

java 抽象类_什么是final?Java抽象类又是什么?抽象类能使用 final 修饰吗?

第十三题讲解人:张小龙 8.23邮箱:2304940425qq.com一.什么是final?final是java中的一个关键字,可以用来修饰变量、方法和类。用关键词final修饰的域成为最终域。用关键词final修饰的变量一旦赋值,就不能改变&…

mysql范式与反范式_MySQL 三种范式以及反范式 | 剑花烟雨江南

第一范式确保数据表中每列(字段)的原子性,即每个字段都是最小单位,不可拆分。如:用户表(user)中的 user_name,password,nick_name。第二范式在第一范式的基础上,保证表中的每列都与主键相关。如果一个关系满…