推荐一个界面设计软件aardio,配合python三分钟制作一个小软件。【批量doc文件转docx文件】

2023-12-14 01:05:10


前言

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函数的,其他的就不说了,先用用这个软件把。


总结

软件界面如下:
在这里插入图片描述

文章来源:https://blog.csdn.net/linmuquan1989/article/details/134910556
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。