因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”
|