文章目录
- 前言
- 一、aardio软件代码
- 二、python代码
- 总结
前言
aardio这个软件不多说,好用方便。
一、aardio软件代码
import win.ui;
/*DSG{{*/
mainForm = win.form(text="批量doc文件转docx文件";right=623;bottom=171)
mainForm.add(
button={cls="button";text="选择待转换目录";left=319;top=48;right=433;bottom=76;z=1};
button2={cls="button";text="选择保存目录";left=319;top=92;right=432;bottom=118;z=2};
button3={cls="button";text="开启转换";left=457;top=51;right=597;bottom=121;z=5};
edit={cls="edit";left=37;top=47;right=300;bottom=76;edge=1;multiline=1;z=3};
edit2={cls="edit";text="开启转换以后没那么快,需要等待一点时间";left=36;top=92;right=302;bottom=120;edge=1;multiline=1;z=4}
)
/*}}*/
import py3;
import fsys.dlg
/*
import console;
import py3.pip;
py3.pip("install","pywin32")
*/
py3.exec($"\res\fh.py");
mainForm.button.oncommand = function(id,event){
mainForm.edit.text = fsys.dlg.opendir()
}
mainForm.button2.oncommand = function(id,event){
mainForm.edit2.text = fsys.dlg.opendir()
}
mainForm.button3.oncommand = function(id,event){
py3.main.GetDocx(py3.export(mainForm))
mainForm.msgbox("转换成功")
}
mainForm.show();
return win.loopMessage();
第一次运行的时候,下面代码要先跑一下,才会把相关的库放到项目的文件夹内。
import console;
import py3.pip;
py3.pip("install","pywin32")
运行以后相关的库就在项目的文件夹内,一会一起打包生成exe文件。
二、python代码
import os
from win32com import client as wc
import time
import shutil
def GetDocx(mainForm):
original_path = mainForm.edit.text
new_path = mainForm.edit2.text
if not os.path.exists(new_path):
os.makedirs(new_path)
files = [file for file in os.listdir(original_path) if file.endswith(('.doc', '.docx')) and not file.startswith('~$')]
for file in files:
word = wc.Dispatch("Word.Application")
print("已处理文件:" + file)
file_path = os.path.join(original_path, file)
new_file_path = os.path.join(new_path, file)
# 对于doc文件,先转换成docx
if file.endswith('.doc'):
doc = word.Documents.Open(file_path)
# 删除文件扩展名,添加新的扩展名.docx
new_file_path = os.path.splitext(new_file_path)[0] + '.docx'
doc.SaveAs(new_file_path, 12) # 12表示docx格式
doc.Close()
word.Quit()
time.sleep(0.5) # 暂停0.5秒
# 对于docx文件,直接复制
elif file.endswith('.docx'):
shutil.copy2(file_path, new_file_path)
代码很短,要关注几个地方。
original_path = mainForm.edit.text
new_path = mainForm.edit2.text
这2行代码是从aardio软件中获取edit编辑框的文本,其实就是文件途径。
延时是为了使软件稳定,太快就报错。
aardio程序中是通过py3.main.GetDocx(py3.export(mainForm))
调用这个GetDocx函数的,其他的就不说了,先用用这个软件把。
总结
软件界面如下: