Python初见-码农Python

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

2021-07-01  本文已影响0人  python与数据分析

写在前面:最近遇到的需求是这样的,需要频繁将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 * ,否则每次启动程序,都会导入大量函数占用大量时间,亲测有效。

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

上一篇下一篇

猜你喜欢

热点阅读