美文网首页Python初见-码农Python
利用 Python 开发桌面小工具,实现htm自动转为excel

利用 Python 开发桌面小工具,实现htm自动转为excel

作者: python与数据分析 | 来源:发表于2021-07-01 17:51 被阅读0次

    写在前面:最近遇到的需求是这样的,需要频繁将htm类型的数据转为Excel表格,这是一个重复性的工作,极大程度上浪费时间和人力,所以我找到了一个解决方案。用Python开发一个桌面的自动化的小工具,虽然实现起来简单,但是真心好用。今天特意写篇文章分享给大家。希望你从获得的是这个思路,里面的功能你可以换成你工作中重复的工作。

    一、首先 htm 数据是如下这样的,一个网址。内容在网页中,这里需要写爬虫,获取网页中的信息,自动保存到excel ,并输出excel格式的文件

    1、需求结果
    2、解析htm里的内容,并保存到excel
    from bs4 import BeautifulSoup
    import pandas as pd
    
    
    class htmToExcel(object):
        def __init__(self, file_name, file_path):
            self.file_name = file_name
            self.file_path = file_path
    
        def htm_to_excel(self):
            print(self.file_path)
            soup = BeautifulSoup(open(self.file_path), features='html.parser')
            table = soup.find("table")
            tr_list = table.find_all("tr")
            th = tr_list.pop(0)
            title = th.find_all("th")
            lis = []
            for tr in tr_list:
                data = {}
                td = tr.find_all("td")
                for i in range(len(td)):
                    data[title[i].text] = td[i].text
                lis.append(data)
            df = pd.DataFrame(lis)
            df.to_excel('{}.xlsx'.format(str(self.file_name).split('.')[0]), index=False)
            return '转换成功!'
    
    
    if __name__ == '__main__':
        file_name = input("请输入文件名字:")
        path = 'C:/Users/cherich/Desktop/' + file_name
        pross = htmToExcel(file_name, path)
        print(pross.htm_to_excel())
    

    二、创建桌面窗口,这里使用tkinter,它是Python 自带的gui库,安装后即可使用

    1、安装命令:
    pip install tkinter
    
    2、利用tkinter完成可视化窗口上传文件功能:
    from tkinter import Tk, Entry, Button, mainloop
    import tkinter.filedialog
    import htm_to_excel
    from tkinter import messagebox
    
    
    def Upload():
        try:
            selectFileName = tkinter.filedialog.askopenfilename(title='选择文件')
            pross = htm_to_excel.htmToExcel(str(selectFileName).split('/')[-1], selectFileName)
            pross.htm_to_excel()
            messagebox.showinfo('Info', '转换成功!')
            root.destroy()
        except Exception as e:
            print(e)
            messagebox.showinfo('Info', '转换失败!')
    
    
    root = Tk()
    root.title('HTM转Excel小工具')
    root.geometry('+500+300')
    
    e1 = Entry(root, width=50)
    e1.grid(row=0, column=0)
    btn1 = Button(root, text=' 上传 ', command=Upload).grid(row=1, column=0, pady=5)
    mainloop()
    

    三、程序打包为exe可执行文件

    本功能打包成exe的好处是不需要将代码部署到服务器,直接将打包好的exe发给对方,就能直接使用。对于这种小而轻的功能非常友好。

    1、安装命令:
    pip install pyinstaller
    
    2、 打开DOS窗口并切换到demo.py文件所在的目录,注意路径中不要有中文:



    在当前的目录下,将会生成两个文件夹:build和dist。dist里面就是所有可执行exe文件,发送快捷方式到桌面,点击demo.exe就能运行了。

    3、pyinstaller指令的常见可选参数:
    -i 给应用程序添加图标
    -F 指定打包后只生成一个exe格式的文件
    -D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
    -c –console, –nowindowed 使用控制台,无界面(默认)
    -w –windowed, –noconsole 使用窗口,无控制台
    -p 添加搜索路径
    
    4、不要踩的坑

    如果生成exe之后,你发现你的程序异常的慢,请检查你的导包代码,尽量不要出现 from ··· import * ,否则每次启动程序,都会导入大量函数占用大量时间,亲测有效。

    今天的文章写到这里,如果你觉得有用,欢迎点赞哦~

    相关文章

      网友评论

        本文标题:利用 Python 开发桌面小工具,实现htm自动转为excel

        本文链接:https://www.haomeiwen.com/subject/yggjultx.html