-
2021-12-06 16:55:09
因Python处理中对文件的格式要求,需把doc文件转化为docx文件,详解如下:
import os from win32com import client as wc import time # 注意:目录的格式必须写成双反斜杠 path="C:\\Users\\wbl\\Desktop\\pythonProject1\\" # 使用绝对地址(可更改) files=[] for file in os.listdir(path): # 找出文件中以.doc结尾并且不以~$开头的文件(~$是为了排除临时文件) if file.endswith('.doc') and not file.startswith('~$'): files.append(path+file) for file in files: word = wc.Dispatch("Word.Application") print("已处理文件:"+files[0]) # 打开文件 doc = word.Documents.Open(files[0]) # 将文件另存为.docx doc.SaveAs("{}x".format(files[0]), 12) # 12表示docx格式 doc.Close() # 删除原doc文件 os.remove(files[0]) # 在files数组中删除第一个文件地址(已处理的文件地址) del files[0] word.Quit() time.sleep(0.5) # 暂停0.5秒
对time.sleep()语句的解释:
time.sleep() 函数推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间。使用原因:
for循环中,上一个进程刚想执行word.Quit()时,下一个进程就已经开始执行到wc.Dispatch(‘Word.Application’),前后矛盾,导致打开不了,使程序报错:“AttributeError: <unknown>.Open”
欢迎大家批评指正~
更多相关内容 -
将doc文件批量转为docx文件,用python将doc文件批量转为docx文件
2017-12-28 14:48:19用python将doc文件批量转为docx文件,用python将doc文件批量转为docx文件, -
HTML+JS实现浏览器在线预览文件(支持pdf、excel、ppt、doc、jpg、png格式)
2019-04-19 16:12:41浏览器在线预览文件(支持pdf、excel、ppt、doc、jpg、png格式) PS:excel、ppt、doc格式只支持公网地址,如:http://xxx/x.odc -
doc文件转换为docx文件
2020-12-13 23:48:30doc文件转换为docx文件doc文件和docx文件的区别代码实现 最近需要批处理word文档,处理过程中有部分文件是doc格式,所以需要写代码来将doc格式文件转换为docx格式文件。 doc文件和docx文件的区别 这部分参考了这个...doc文件转换为docx文件
最近需要批处理word文档,处理过程中有部分文件是doc格式,所以需要写代码来将doc格式文件转换为docx格式文件。doc文件和docx文件的区别
这部分参考了这个知乎链接: doc文件和docx文件的区别.的介绍,我自己暂时用到理解就是doc文件格式是以前word版本才使用的文件格式。
前提:
安装两个工具包,安装命令:
pip install python-docx
python -m pip install pypiwin32代码实现
def doc_to_docx(file_dir): docfiles = [] for root, dirs, files in os.walk(file_dir): for file in files: if os.path.splitext(file)[1] == '.doc': docfiles.append(os.path.join(root, file)) word = wc.Dispatch("Word.Application") # 打开word应用程序 for docfile in docfiles: doc = word.Documents.Open(docfile) # 打开word文件 doc.SaveAs('{}x'.format(docfile), 12) # 另存为后缀为".docx"的文件,其中参数12指docx文件 doc.Close() # 关闭原来word文件 os.remove(docfile) word.Quit() print("完成!")
首先要导入win32的API包
from win32com import client as wc
接着,去到word文件夹里面去找到对应的doc格式的文件,其中os.path.splitext()方法切割文件名方便匹配对应格式文件
docfiles = [] for root, dirs, files in os.walk(file_dir): for file in files: if os.path.splitext(file)[1] == '.doc': #切分文件名,匹配相应格式的文件 docfiles.append(os.path.join(root, file))
解释一下,for root, dirs, files in os.walk(file_dir):
三个变量分别是什么:变量名 含义 root 表示正在遍历的文件夹的名字 dirs 记录正在遍历的文件夹下的子文件夹集合 files 记录正在遍历的文件夹中的文件集合 然后,使用win32API接口打开word应用程序,开始文件格式的转换,这里记录一下document.savaAs2的转换方法的后缀格式参数有哪些,参考官方链接链接: saveAS方法参数.
这里特别注意 doc.SaveAs(filename, 16)方法里面,必须第一个参数重新给定的文件名的格式后缀必须和后面数字参数给定的格式匹配,否则会报错。而且filename是指包含了源路径的文件路径名。
名稱 值 描述 wdFormatDocument 0 Microsoft Office Word 97-2003年二進位檔案格式。 wdFormatDOSText 4 Microsoft DOS 文字格式。 wdFormatDOSTextLineBreaks 5 保留分行符號的 Microsoft DOS 文字。 wdFormatEncodedText 7 編碼文字格式。 wdFormatFilteredHTML 10 篩選的 HTML 格式。 wdFormatFlatXML 19 儲存為單一的 XML 檔案開啟 XML 檔案格式。 。。。 。。。 。。。 word = wc.Dispatch("Word.Application") # 打开word应用程序 for docfile in docfiles: doc = word.Documents.Open(docfile) # 打开word文件 doc.SaveAs2('{}x'.format(docfile), 12) # 另存为后缀为".docx"的文件,其中参数12指docx文件 doc.Close() # 关闭原来word文件 os.remove(docfile) word.Quit()
-
将doc文件转为txt文件
2021-01-07 14:30:31将doc文件转为txt文件需要几步? 答:需要两步, 1.先将doc转为docx。因为python-docx只能处理docx的文件,而无法处理doc文档。docx本质是xml文件比doc更小些。这里需要的包为win32com,如果没有,则pip即可。 ...问,将大象放进冰箱需要几步?
啊呸,串场了。将doc文件转为txt文件需要几步?
答:需要两步,
1.先将doc转为docx。因为python-docx只能处理docx的文件,而无法处理doc文档。docx本质是xml文件比doc更小些。这里需要的包为win32com,如果没有,则pip即可。
import os from win32com import client as wc from docx import Document from tqdm import tqdm def doc2docx(origin_path, goal_path): """ 将doc转为docx """ word = wc.Dispatch("Word.Application") # 不能用相对路径,用绝对路径 # 需要处理的文件所在文件夹目录 for i in os.listdir(origin_path): # 找出文件中以.doc结尾并且不以~$开头的文件(~$是为了排除临时文件的) if i.endswith('.doc') and not i.startswith('~$'): print(i) doc_path = os.path.join(origin_path, i) doc = word.Documents.Open(doc_path) # 将文件名与后缀分割 rename = os.path.splitext(i) # 将文件另存为.docx save_path = os.path.join(goal_path, rename[0] + '.docx') doc.SaveAs(save_path, 12) # 12表示docx格式 doc.Close() word.Quit()
2.将docx转为txt文本。这些需要python-docx,如果没有则pip就好。
import os from win32com import client as wc from docx import Document from tqdm import tqdm def docx2txt(path): """ 将docx转为txt """ txt_count = 1 for i in os.listdir(path): if i.endswith('.docx') and not i.startswith('~$'): file_path = os.path.join(path, i) document = Document(file_path) txt_path = os.path.join(path, str(txt_count)+'.txt') f = open(txt_path, 'w', encoding='utf-8') for paragraph in tqdm(document.paragraphs): f.write(paragraph.text.strip()+'\n') f.close() txt_count += 1
-
用python将doc文件转换成docx文件
2022-01-17 16:30:46用python3将doc文件批量转换成docx文件有一个需求,就是要批量的读取doc文件,并且处理里面的文字
我们首先想到的方式是使用python进行文档的读取。但是通过实操发现,python并没办法处理doc的word文档,必须将doc文件转换成docx文件才能进行处理。下面就分享下操作的过程,亲测可用!
【python包安装】win32com
【操作平台】anaconda3
import os from win32com import client as wc word = wc.Dispatch('Word.Application') #将docx文件保存的路径 docxPath = 'D:\\wyj\\技术文档\\python-doc文件转换成docx文件\\docx' #doc文件路径 path = "D:\\wyj\\技术文档\\python-doc文件转换成docx文件" ''' 获取doc文件名,创建docx文件路径 ''' def getFileName(path): filesList = [] for root, dirs, files in os.walk(path): isExists=os.path.exists(docxPath) #新建docx文件夹 if not isExists : os.makedirs(docxPath) for file in files: #判断尾缀是不是doc suffix = file.split('.')[1] if suffix == 'doc': filesList.append(file) print(filesList) return filesList ''' 将doc文件转换成docx文件 ''' def docToDocx(fileNameList): try: for fileName in fileNameList: print("开始处理 文件名:"+fileName) doc = word.Documents.Open(path+'\\'+fileName) #[:-4]的意思是选这个字符串从开始到最后倒数第4位(不含) docxNamePath = docxPath+'\\'+fileName[:-4]+'.docx' print('转换完成!'+docxNamePath) doc.SaveAs(docxNamePath, 12, False, "", True, "", False, False, False, False) finally: #一定要记得关闭docx,否则会出现文件占用 doc.Close() try: fileNameList = getFileName(path) docToDocx(fileNameList) finally: word.Quit()
经过这一番操作,doc文档就能转换成docx文档了,如何读取docx文档的内容,我会在后边的文章中展示给大家!
-
vue前端上传doc文件并读取文件内容
2021-06-16 16:59:051. 上传文件 如iview中的: ...Uploadaction="":before-upload="handleBeforeUpload"accept=".doc,.docx"> <Button:loading="uploadLoading">上传文件</Button> </Upload> 2. 读取文件 -
doc文件如何转换成docx文件
2018-07-24 07:46:30如何不依赖插件,通过java代码使doc文件转换成docx文件? -
.net NPOI读写Doc文件
2020-06-06 17:44:491、NuGet安装NPOI ...XWPFDocument doc = new XWPFDocument(stream); foreach (var para in doc.Paragraphs) { string text = para.ParagraphText; //获得文本 if(text.Trim()!="") Console.WriteLine(text); -
.doc文件不显示word图标的解决方法
2021-08-18 13:26:54第一步:按win+r键,弹出运行框...第四步:找到HKEY_CLASSES_ROOT文件,找到其分支下的.doc和.docx文件,删除,退出注册表编辑器。 第五步:选择一个.doc和.docx文件,右键,打开方式选择word,始终选择这种方式。 ... -
.doc文件不显示word图标
2020-03-30 16:54:16.doc文件不显示word图标 前两天出现了.doc文件不显示图标的问题(空白,有点像.txt文件) (图是网上随便找的,因为一不小心弄好了,忘记截图了。 附图源链接:https://www.jb51.net/office/word/552687.html) ... -
Python百度文库爬虫之doc文件
2020-04-27 21:55:55Python百度文库爬虫之doc文件 说明:此文件是在爬取txt文件下的基础进行的,因此重复内容会一笔带过,不懂请看前面爬取txt文件链接 对于文件的所有类型,我都会用一篇文章进行说明,链接: Python百度文库爬虫之... -
html 显示doc文件
2018-12-17 15:25:32获取绝对路径会直接下载文件 寻求解决办法 1.JS获取word文档内容到html页面 ActiveXObject只支持ie,其他浏览器并不适用 2.https://blog.csdn.net/qxianx/article/details/81317894 <iframe style=&... -
用Python将doc文件批量转为docx文件
2017-12-28 14:50:54工具下载地址http://download.csdn.net/download/zzti_erlie/10177909使用指南选中输入...文件路径前后有空格不影响程序的运行 1. 点击右边的按钮,在弹出的对话框中选中文件即可 示例:C:/Users/Administrator/Desk -
python大批量读写.doc文件的解决方案
2017-12-22 14:57:31最近在做深度学习的项目,需要解析并处理几百个数量级的.doc文件。众所周知,python读写.txt文档可以说一路畅通无阻,不管你中文是什么格式;python在读写.docx文档时,也比较畅通,最多你需要在命令行安装python-... -
java读取.doc文件
2019-04-09 23:13:24需要的jar包: poi-3.17.jar poi-scratchpad-3.17.jar poi-ooxml-3.17.jar poi-ooxml-schemas-3.17.jar 下载地址: ...缺点:虽然两种方式都能读取,但只能读取doc文件,无法读取docx文件 -
Ubuntu开发环境的建立.doc
2011-03-28 14:47:18Ubuntu开发环境的建立.doc Ubuntu开发环境的建立.doc Ubuntu开发环境的建立.doc Ubuntu开发环境的建立.doc Ubuntu开发环境的建立.doc -
Java读取TXT文本文件乱码解决方案.doc
2011-02-13 23:49:33Java读取TXT文本文件乱码解决方案.doc -
vba实现doc文件批量转docx文件
2019-06-10 15:00:26vba批量转换doc为docx说明 随便找一个word文件打开,同时按住Alt+F11,会出现如图所示界面: 在左边空白处右击,依次... Sub doc2docx() 'doc文件转docx文件 Dim myDialog As FileDialog, oFile As Varian... -
js 移动端 下载 doc文件
2019-07-22 11:31:31一:这种情况的话安卓会打开浏览器下载该文件,苹果的会打开页面 <a href=javascript:downloadfile("url....文件.doc</a> function downloadfile(hrefurl) { var url= hrefurl; var agent = ... -
如何利用python将.doc文件转换为.docx文件
2018-10-30 14:58:02前面写了很多利用python-docx批量处理word文件的教程,但是python-docx不支持doc格式,因此如何将doc文件转为docx文件就是一个需要解决的问题,如果文件少可以另存为,如何文件多呢,因此需要一个doc批量转docx的... -
【Python】python读取doc、docx文件里的表格内容并存入excel中
2021-03-16 23:40:32先展示下基本的效果,首先我们只有一个doc文件,与python的代码: 我这里用的是doc的word文档,文档内表格如下: 通过python读取后打印: 我这里没有专门按照表格内往excel中写,只是随意写了几个数据: 因为根据... -
python读取doc/docx文件
2019-06-09 00:40:24仅此记录python读取doc/docx文件的方法,和常用简单的open txt文件完全不同(版本python 3.6 Win10) docx 使用docx包,python为其专用接口,python-docx,使用 pip install python-docx 安装即可,本人第一次... -
【Java】操作doc文件
2018-01-03 15:47:34读取并修改doc文件内容 -
使用POI读写word doc文件
2018-07-25 10:44:06目录 1 ... 读word doc文件 1.1 通过WordExtractor读文件 1.2 通过HWPFDocument读文件 2 & -
关于门户网站下载文件.doc文件直接打开成压缩包格式的解决办法
2018-06-26 10:07:191,当在门户网站的下载专区下载doc文件时,直接打开生成压缩包形式,并且解压过后不是对应得doc文档,如下截图所示:2.解决方法: 2.1 将部署root包下web.xml文档打开 2.2 将文档中标注的zip改成docx。 2.3改好后... -
PrintShare破解版+打印机驱动、PDF库文件、DOC库文件提取
2015-08-20 15:51:14内含: PrintShare破解版;从PrintShare中提取的惠普打印机驱动、PDF库文件、DOC库文件 -
解决Microsoft Office 2010无法打开.doc文件的问题
2018-12-20 20:17:31今天突然碰到我的Microsoft Office 2010无法打开.doc文件的问题,出现如下图的错误: 开始以为文件损坏了,由于文件比较重要,不甘心就这么算了,就试着打开其他的word文档,发现docx可以打开,但doc文件都无法... -
iOS应用打开pdf、doc、excel文件等
2018-09-29 09:55:37只描述一种,加载本地文件的代码: #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIWebView *webView; @end @implementation ViewController - ... -
java解析doc或者docx文件,文件中内容为表格形式
2019-04-30 09:17:35// 处理docx格式 doc 与docx格式共用 POIFSFileSystem pfs = new POIFSFileSystem(in); HWPFDocument hwpf = new HWPFDocument(pfs); //得到文档的读取范围 Range range = hwpf.getRange(); TableIterator it ...