有一个小需求,将word文档在页面上显示。因为需要word里面的格式(还有图片),所以不能抽出文本显示。考虑将word转为html后在页面显示html代码,可以保留格式和图片链接(图片链接需要做处理)。
不知道使用java是否可以完成这个功能,不过网上找到使用python调用windows接口的文章,所以照着做了一下,还挺方便的。第一次用python,只是照葫芦画瓢,在此记录一下。
#coding=utf-8
#文件名:
#BatchConverWords2Html.py
#说明:
#批量将一个文件夹下的所有.doc/.docx文件转为.html文件,需要安装对应的win32模块
#调用方式:进入源程序目录,命令:python BatchConverWords2Html.py RootDir
from win32com import client as wc
import os
word = wc.Dispatch('Word.Application')
def wordsToHtml(dir):
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 "generate html:" + htmlFullName
doc.SaveAs(htmlFullName, 10)
doc.Close()
word.Quit()
print ""
print "Finished!"
if __name__ == '__main__':
import sys
if len(sys.argv) != 2:
print "Usage: python funcName.py rootdir"
sys.exit(100)
wordsToHtml(sys.argv[1])
运行结果就是在rootdir目录下的所有word文档转为简洁版的html网页文件,生成的文件存在原word同目录下,有可能生成 xxx.files 文件夹。
这里只是综合了一个遍历文件夹目录的例子和一个调用win32com接口的例子,对python还是不太明白,需要好好系统学习下。
参考了《Python Cookbook》书 2.17 的一段遍历文件夹的代码:
#《Python Cookbook》2.17 在目录树中改变文件扩展名
import os
def swapextensions(dir, before, after):
if before[:1] != '.':
before = '.' + before
thelen = -len(before)
if after[:1] != '.':
after = '.' + after
for path, subdirs, files in os.walk(dir):
for oldfile in files:
if oldfile[thelen:] == before:
oldfile = os.path.join(path, oldfile)
newfile = oldfile[:thelen] + after
os.rename(oldfile, newfile)
if __name__ == '__main__':
import sys
if len(sys.argv) != 4:
print "Usage: swapext rootdir before after"
sys.exit(100)
swapextensions(sys.argv[1], sys.argv[2], sys.argv[3])
注:
1. 要想调用win32com接口,除了安装Python,还需要下载安装与python版本对应的pywin32
模块,我下的是pywin32-216.win32-py2.7.exe;
参考:
一、Python转换office word文件为HTML
二、Python中使用中文
三、Python Cookbook
============================================
2011年8月23日
今天突然发现一个问题,使用python转出来的html和使用word软件手工转出来的html代码不一样,我之前一直认为调用的是同样的API结果应该一样!
ps:javaeye的SEO真好,现在百度搜索“python word html”第二篇就是这个,哎,不过我想看看其他人有没有遇到这种问题啊。
分享到:
相关推荐
python遍历文件夹下所有文件,创建txt文件读写txt文件
python遍历文件夹并按序号重新命名文件
python写的小程序,用于将一个文件夹下所有文件名(包括子文件夹中的文件)提取到excel中,每个子文件夹生成一个excel工作表
利用os.walk遍历某个文件夹下的文件夹和文件,并把名字写入txt
遍历所选文件夹,并将文件夹里的图片转化成你想要的尺寸。
主要介绍了python遍历文件夹下所有excel文件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
python遍历文件夹及其子文件夹, 查询出所有的文件 按照名字模糊搜索模板文本进行比对
python发现文件夹下所有的jpg文件,并且安装文件排放的顺序输出 glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:”*...
今天小编就为大家分享一篇python遍历文件夹,指定遍历深度与忽略目录的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
遍历文件夹:Python可以使用os模块中的函数来遍历指定路径下的文件和文件夹,以实现对文件系统的操作。 读写Excel:Python可以使用pandas库来读取和写入Excel文件,pandas是一个强大的数据分析工具,支持多种数据...
使用arcpy 遍历某文件下(包括子文件夹)所有面要素类,然后将这些要素合并。
Python开发打包的小工具,可以快速获取当前路径下所有文件和文件夹名称及路径,支持Excel导出,方便获取路径下的所有文件夹和文件名
主要介绍了python使用openCV遍历文件夹里所有视频文件并保存成图片,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
今天小编就为大家分享一篇python遍历文件夹找出文件夹后缀为py的文件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
主要介绍了python实现遍历文件夹修改文件后缀,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
遍历指定文件夹下的excel文件,打开excel文件之后读取多个sheet中指定的sheet数据,并把读取的数据导入到mysql数据库中,是python写的源码,环境是python3。
主要为大家详细介绍了python实现遍历文件夹图片并重命名,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
python遍历目录文件名字输出到一个文本文档的代码 python2.7列出文件夹的所有名字到一个文本文件代码 python列出文件夹下的所有文件名字源码 python遍历目录下所有文件名 PYTHON TRAVERSE THE FLODER
/usr/bin/python# -*- coding: utf-8 -*- import os def del_files(path): for root , dirs, files in os.walk(path): for name in files: if name.endswith(“.tmp”): os.remove(os.path.join(root, name)) ...