pywin32:批量将doc文件转为docx
学习自:python批量把doc文件转换成docx_python批量将doc转docx-CSDN博客
目的:将某个目录下(包括子目录)中的所有doc转为docx
import os import docx import win32com.client as win32 url='D:\规范文档' word=win32.Dispatch('Word.Application') for root,dir2,files in os.walk(url): #遍历目录url for file in files: fr=os.path.join(root,file) #fr为文件的完整路径 fn,ex=os.path.splitext(file) #提取文件名和后缀 if ex=='.doc': doc=word.Documents.Open(fr) fr+='x' #后缀改为docx doc.SaveAs(fr,12,False,'',True,False,False,False,False) doc.Close() #不关闭的话会打开很多文件窗口
期间遇到的一系列问题
1、ImportError:DLL load filed
解决方法:菜单栏→Run→Edit Configuration→Environment Variables→新建一项:
name为path
Value为python.exe所在的目录下的Lib目录下的pywin32_system32目录(实在找不到这个目录可以在Lib用搜索的方式找找这个目录在哪)
2、ImportError:cannot import name 'winerror' 或ModuleNotFoundError: No module named 'win32api'
去报错的这个__init__.py中,把import winerror语句改为from . import winerror。
然后把win32目录下的winerror.py复制到__init__.py同级目录下。
对于所有的cannot import name,都可用这种做法做,即把win32包中的同名py或pyd文件复制到__init__.py的同级目录下。再改import语句为from . import module名即可。
3、no model named pywintypes、no module named win32com.client、ImportError: cannot import name 'client'
解决方法同2,找到pywintypes.py或pyd文件(如果是client,就把client这个目录复制过去),把它复制到__init__.py同级目录下。
去报错的这个__init__.py中,把import winerror语句改为from . import pywintypes。
4、在cmd中用Python可以import某个module,但是在pycharm的terminal中却不行
一般是pycharm的Terminal配置有问题,File→Settings→Tools→Terminal,修改Start Directory为python.exe所在的目录即可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性