`
RonQi
  • 浏览: 93264 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用python遍历文件夹将word转为html

阅读更多

有一个小需求,将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”第二篇就是这个,哎,不过我想看看其他人有没有遇到这种问题啊。

 

 

 

 

 

 

 

分享到:
评论
2 楼 RonQi 2012-01-04  
mistress 写道
有个问题,OLE的图片例如visio图片,SaveAs以后存出来失真很厉害。。

我没遇到过,今天有空试试
1 楼 mistress 2012-01-03  
有个问题,OLE的图片例如visio图片,SaveAs以后存出来失真很厉害。。

相关推荐

    遍历文件夹并将改里面的图片尺寸

    1. **遍历文件夹**:在Python中,我们可以使用`os`模块的`os.walk()`函数来遍历文件夹及其子文件夹中的所有文件。这个函数会返回一个生成器,每次迭代都会返回一个三元组,包含当前目录路径、当前目录的子目录列表和...

    python遍历文件夹中所有文件名写入excel文件

    python写的小程序,用于将一个文件夹下所有文件名(包括子文件夹中的文件)提取到excel中,每个子文件夹生成一个excel工作表

    python遍历文件夹下所有excel文件

    本文将详细讲解如何使用Python遍历文件夹并读取其中的Excel(xlsx)文件。Excel文件通常用于存储和组织大量数据,因此在大数据处理中,能够批量读取和处理这些文件是十分必要的。 首先,我们要使用Python的标准库`...

    Python遍历文件名和文件夹

    本文将详细讲解如何使用Python实现这一功能,并结合提供的"Python遍历文件名和文件夹"小工具,阐述其工作原理和应用场景。 首先,Python提供了一个名为`os`的内置模块,它包含了大量与操作系统交互的函数。其中,`...

    对python遍历文件夹中的所有jpg文件的实例详解

    本篇文章将详细介绍如何使用Python的`glob`模块来查找和遍历文件夹中的所有`.jpg`图片文件,并提供相关的实例代码。 `glob`模块是Python标准库的一部分,用于搜索符合特定模式的文件路径名。它主要使用通配符...

    python遍历文件夹,指定遍历深度与忽略目录的方法

    本文将详细讲解如何使用Python来遍历文件夹,并重点介绍指定遍历深度以及忽略特定目录的方法。 首先,Python提供了标准库`os`,它包含了处理文件和目录的多种方法。在遍历文件夹时,我们通常会用到`os.listdir()`,...

    遍历文件夹自动生成目录树

    总之,遍历文件夹自动生成目录树是文件系统操作的核心部分,它涉及到文件系统API的使用、数据结构的设计、递归遍历以及性能优化等多个方面的知识。通过理解这些概念和技术,我们可以更好地管理和组织电脑上的文件和...

    自动遍历文件夹生成成目录树.rar

    生成目录树的程序往往不仅遍历文件夹,还会将其结构以可视化的形式输出,如文本格式或图形界面。例如,Python的nltk库提供了Tree类,可以构建并打印树结构;或者使用第三方库如tree命令(Linux/Unix)或tree.py...

    arcpy (arcgis python) 遍历某文件下所有要素类矢量shp

    使用arcpy 遍历某文件下(包括子文件夹)所有面要素类,然后将这些要素合并。

    遍历文件夹并生成树,很不错的例子

    在编程领域,遍历文件夹并生成树状结构是一种常见的任务,特别是在文件系统管理或...通过学习这个例子,你可以掌握如何在Python中实现这一功能,包括使用`os`模块遍历文件夹、构建树数据结构以及在GUI中展示树形结构。

    基于python实现批量像Word一样按层级提取Word目录附项目源码

    Python 语言简单针对深度学习的算法,以及独特的深度学习框架,将在人工智能领域编程语言中占重要地位。 Python 是一种代表简单主义思想的语言。吉多·罗萨姆对 Python 的定位是“优雅,明确,简单”。Python 拒绝了...

    python实现遍历文件夹修改文件后缀

    在上述内容中,我们看到了一个使用Python实现遍历文件夹修改文件后缀的实例,具体是通过编写一个python脚本,脚本文件名可能为pythonModifer.py。这个脚本的主要功能是根据用户提供的参数,遍历指定的文件夹并根据...

    python使用openCV遍历文件夹里所有视频文件并保存成图片

    这篇内容主要讲解了如何使用OpenCV库来遍历指定文件夹及其子文件夹中的所有MP4视频文件,并将每一帧按一定间隔保存为图片。OpenCV(Open Source Computer Vision Library)是一个强大的计算机视觉库,支持多种图像和...

    Python3遍历指定文件夹下的excel文件,并把数据导入mysql数据库源码

    遍历指定文件夹下的excel文件,打开excel文件之后读取多个sheet中指定的sheet数据,并把读取的数据导入到mysql数据库中,是python写的源码,环境是python3。

    如何遍历文件夹查找文件

    - **Python**: 可以使用`os`和`os.path`模块,如`os.walk()`函数用于递归遍历目录。 - **Java**: `java.io.File`类提供了`list()`, `listFiles()`, `listFiles(FileFilter)`等方法。 - **C++**: 使用`...

    python实现遍历文件夹图片并重命名

    本篇将详细介绍如何使用Python的os模块遍历文件夹并重命名图片。 首先,Python的os模块提供了访问和管理文件和目录的功能。`os.listdir()`函数用于获取指定路径下的所有文件和子目录的名称,返回一个列表。`os.path...

    python遍历目录文件名字输出到一个文本文档的代码

    python遍历目录文件名字输出到一个文本文档的代码 python2.7列出文件夹的所有名字到一个文本文件代码 python列出文件夹下的所有文件名字源码 python遍历目录下所有文件名 PYTHON TRAVERSE THE FLODER

    python遍历文件夹找出文件夹后缀为py的文件方法

    在Python编程中,有时我们需要遍历文件夹结构,查找特定类型的文件,比如后缀为`.py`的Python源代码文件。这个需求在处理大量代码项目或者进行自动化任务时非常常见。本文将介绍如何使用Python实现这个功能,通过一...

    遍历文件夹,内存中形成文件名、属性队列,并打印。

    通常,遍历文件夹可以使用各种编程语言,如Python、C#、Java等。这里我们以Python为例,因为它简洁的语法和强大的文件操作库。 1. **Python遍历文件夹**:Python的`os`和`os.path`模块提供了遍历文件夹的功能。我们...

Global site tag (gtag.js) - Google Analytics