学习自: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所在的目录即可。
标签:__,docx,doc,py,pywin32,import,目录 From: https://www.cnblogs.com/ShineLeBlog/p/18072772