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所在的目錄即可。

浙公網安備 33010602011771號