文章目录
- 前言
- 一、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 shutildef GetDocx(mainForm):original_path = mainForm.edit.textnew_path = mainForm.edit2.textif 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文件,先转换成docxif file.endswith('.doc'):doc = word.Documents.Open(file_path)# 删除文件扩展名,添加新的扩展名.docxnew_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函数的,其他的就不说了,先用用这个软件把。
总结
软件界面如下: