Jadual Kandungan
配置虚拟环境
安装虚拟环境依赖包
创建虚拟环境命令
Rumah pembangunan bahagian belakang Tutorial Python Terlalu kuat! Python membangunkan alat desktop dan membenarkan kod melakukan kerja berulang untuk kami!

Terlalu kuat! Python membangunkan alat desktop dan membenarkan kod melakukan kerja berulang untuk kami!

May 06, 2023 am 11:10 AM
python alat kod

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

Niat asal menulis artikel ini datang daripada soalan seorang rakan, tentang "Cara menggunakan Python untuk menjana jadual pangsi secara automatik berdasarkan sumber data". idea yang baik di sebalik soalan ini Idea penyelesaian adalah untuk membiarkan kod melakukan kerja berulang untuk kita, dengan itu mengurangkan beban kerja dan mengurangkan ralat.

Gajet yang dibangunkan oleh Python sebenarnya membungkus program Python ke dalam exe, yang boleh digunakan selepas berkongsi Walaupun komputer tidak memasang persekitaran Python, ia boleh digunakan untuk meningkatkan kecekapan kerja dan meminimumkan lebih masa.

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

Garis Kandungan

  • Keperluan yang jelas: Menjana jadual pangsi secara automatik [Bahagian ini boleh digantikan dengan kerja berulang anda 】
  • Pasang perpustakaan bergantung tiga pihak: tkinter dan pyinstaller
  • Pelaksanaan kod: termasuk dua bahagian Python untuk menjana jadual pangsi dan reka bentuk pautan GUI desktop
  • Pakej Python Program menjana fail boleh laku exe
  • Selesaikan masalah bahawa fail exe mungkin terlalu besar: pasang persekitaran maya

1 >

akan berfungsi Untuk operasi berulang, gunakan tiga medan nama pembekal, bulan dan jumlah pergudangan untuk menjana format jadual pangsi yang diingini.


太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

2. Pasang perpustakaan bergantung pihak ketiga


Buat tetingkap desktop Di sini kami menggunakan tkinter, iaitu GUI Python sendiri perpustakaan. Ia sedia untuk digunakan selepas pemasangan.


pip install tkinter
Salin selepas log masuk

Gunakan pyinsatller untuk membungkus program ke dalam exe Kelebihannya ialah anda tidak perlu menggunakan kod ke pelayan Anda boleh menghantar exe yang dibungkus secara terus kepada pihak lain dan anda boleh gunakannya terus Untuk yang kecil dan ringan ini Fungsinya sangat mesra pengguna.


pip install pyinstaller
Salin selepas log masuk

3. Pelaksanaan kod


Fail Excel untuk menjana data jadual pangsi dan penapis, nama fail: excel_to_pivot.py

import pandas as pd
import numpy as np
class ExcelToPivot(object):
 def __init__(self, filename, file_path):
 self.file_name = filename
 self.file_path = file_path
 """
 excel自动转透视表功能
 返回透视结果
 """
 def excel_Pivot(self):
 print(self.file_path)
 data = pd.read_excel(self.file_path)
 data_pivot_table = pd.pivot_table(data, index=['供应商名称', '月份'], values=["入库金额"], aggfunc=np.sum)
 return data_pivot_table
 """
 按条件筛选,并保存
 """
 def select_data(self, name, month):
 data_pivot_table = self.excel_Pivot()
 data_new = data_pivot_table.query('供应商名称 == ["{}"] & 月份 == {}'.format(name, month))
 data_new.to_excel('{}.xlsx'.format(str(self.file_name).split('.')[0]))
 return '筛选完成!'
if __name__ == '__main__':
 filename = input("请输入文件名字:")
 path = 'C:/Users/cherich/Desktop/' + filename
 pross = ExcelToPivot(filename, path)
 print(pross.select_data("C", 4))
Salin selepas log masuk

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

Reka bentuk fungsi tetingkap desktop, nama fail: operation.py

from tkinter import Tk, Entry, Button, mainloop
import tkinter.filedialog
import excel_to_pivot
from tkinter import messagebox
from tkinter import ttk
def Upload():
 global filename, data_pivot_table
 try:
 filename = tkinter.filedialog.askopenfilename(title='选择文件')
 pross = excel_to_pivot.ExcelToPivot(str(filename).split('/')[-1], filename)
 data_pivot_table = pross.excel_Pivot()
 messagebox.showinfo('Info', '转换成功!')
 except Exception as e:
 print(e)
 messagebox.showinfo('Info', '转换失败!')
def select(name, month):
 try:
 print('供应商名称 == ["{}"] & 月份 == {}'.format(name, month))
 data_new = data_pivot_table.query('供应商名称 == ["{}"] & 月份 == {}'.format(name, month))
 data_new.to_excel('{}.xlsx'.format(str(filename).split('.')[0]))
 messagebox.showinfo('Info', '筛选完成并生成文件!')
 root.destroy()
 except Exception as e:
 print(e)
 messagebox.showinfo('Info', '筛选失败!')
root = Tk()
root.config(background="#6fb765")
root.title('自动转透视表小工具')
root.geometry('500x250')
e1 = Entry(root, width=30)
e1.grid(row=2, column=0)
btn1 = Button(root, text=' 上传文件 ', command=Upload).grid(row=2, column=10, pady=5)
box1 = ttk.Combobox(root)
# 使用 grid() 来控制控件的位置
box1.grid(row=5, sticky="NW")
# 设置下拉菜单中的值
box1['value'] = ('A', 'B', 'C', 'D', '供应商')
# 通过 current() 设置下拉菜单选项的默认值
box1.current(4)
box2 = ttk.Combobox(root)
box2.grid(row=5, column=1, sticky="NW")
box2['value'] = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, '月份')
box2.current(12)
# 编写回调函数,绑定执行事件
def func(event):
 global b1, b2
 b1 = box1.get()
 b2 = box2.get()
# 绑定下拉菜单事件
box1.bind("<<ComboboxSelected>>", func)
box2.bind("<<ComboboxSelected>>", func)
btn2 = Button(root, text=' 筛选数据 ', command=lambda: select(b1, b2)).grid(row=30, column=10, pady=5)
mainloop()
Salin selepas log masuk

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

Jika hasil larian seperti di atas, bermakna tiada masalah dengan kod, dan anda boleh meneruskan ke langkah seterusnya.

4. Pakej program Python untuk menjana exe


Buka tetingkap DOS dan tukar ke direktori di mana dua fail py berada laluan.


pyinsatller -F -w opration.py
Salin selepas log masuk

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

Parameter pilihan biasa arahan pyinstaller:


    -i Tambahkan ikon pada aplikasi
  • -F menyatakan bahawa hanya satu fail dalam format exe akan dijana selepas pembungkusan

  • -D –onedir mencipta direktori yang mengandungi fail exe, tetapi akan bergantung pada banyak fail (pilihan lalai)

  • -c –console, –nowindowed Gunakan konsol, tiada antara muka (lalai)

  • -w –windowed, –noconsole Gunakan tetingkap, tiada konsol

  • - p Tambah laluan carian

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

Dalam direktori semasa, dua folder akan dijana: bina dan dist. Dist mengandungi semua fail exe boleh laku Hantar pintasan ke desktop dan klik opration.exe untuk menjalankannya Anda boleh menghantar pintasannya ke desktop dan klik dua kali.

5 Selesaikan masalah bahawa fail exe mungkin terlalu besar


Sesetengah rakan kongsi baru sahaja memasang persekitaran Python tidak lama dahulu, jadi masalah fail terlalu besar ini mungkin tidak wujud. . Sebagai contoh, saya mempunyai banyak pakej ketergantungan Python dan anaconda yang dipasang pada komputer saya Fail yang dibungkus sebenarnya 660M Ia mengambil masa yang lama untuk dibungkus dan terperangkap semasa pelaksanaan Kemudian, ia dikurangkan kepada 31M selepas pembetulan adalah pantas dan boleh dilaksanakan dalam beberapa saat. Penyelesaiannya ialah memasang persekitaran maya Python di bawah sistem Windows Operasi berikut hanya boleh dilakukan jika Python telah dipasang pada komputer.


太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

找到 Python 所在路径,如果忘记了,可以在电脑左下角搜索【编辑系统环境变量】——【用户变量】——【PATH】中找到

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

配置虚拟环境

虚拟环境可以理解为是 Python 解释器的一个副本,在这个环境你可以安装私有包,而且不会影响系统中安装的全局 Python 解释器。虚拟环境非常有用,可以在系统的 Python 解释器中避免包的混乱和版本的冲突。

重要是不同虚拟环境可以搭建不同的 Python 版本,创建时候选择,我们这里需要一个相对 "干净" 的 Python 环境,没有安装过多依赖包,避免 exe 打包文件过大,所以用到虚拟环境。

安装虚拟环境依赖包

pip install virtualenv
pip install virtualenvwrapper-win
Salin selepas log masuk

创建虚拟环境命令

mkvirtualenv -p="C:UserscherichAppDataLocalProgramsPythonPython38python.exe" py38
Salin selepas log masuk

进入虚拟环境,可以看到只有几个默认的 Python 库

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

这时可以测试一下代码,是否缺少相关依赖,比如我这个缺少 Pandas,openpyxl,依次按照 pip install 包名安装即可,非常重要的点:pyinstaller 必须重新安装,文件才会缩小。

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

上述操作完成后,打包就可以了,最后退出虚拟环境即可。

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

退出虚拟环境

deactivate
Salin selepas log masuk

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

Atas ialah kandungan terperinci Terlalu kuat! Python membangunkan alat desktop dan membenarkan kod melakukan kerja berulang untuk kami!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah kesan kegigihan redis pada ingatan? Apakah kesan kegigihan redis pada ingatan? Apr 10, 2025 pm 02:15 PM

Redis Kegigihan akan mengambil ingatan tambahan, RDB sementara meningkatkan penggunaan memori apabila menjana snapshot, dan AOF terus mengambil ingatan apabila memasuki log. Faktor yang mempengaruhi termasuk jumlah data, dasar kegigihan dan konfigurasi REDIS. Untuk mengurangkan kesan, anda boleh mengkonfigurasi dasar snapshot RDB, mengoptimumkan konfigurasi AOF, menaik taraf perkakasan dan memantau penggunaan memori. Selain itu, adalah penting untuk mencari keseimbangan antara prestasi dan keselamatan data.

Rancangan Python 2 jam: Pendekatan yang realistik Rancangan Python 2 jam: Pendekatan yang realistik Apr 11, 2025 am 12:04 AM

Anda boleh mempelajari konsep pengaturcaraan asas dan kemahiran Python dalam masa 2 jam. 1. Belajar Pembolehubah dan Jenis Data, 2.

Bagaimana cara menetapkan saiz memori Redis mengikut keperluan perniagaan? Bagaimana cara menetapkan saiz memori Redis mengikut keperluan perniagaan? Apr 10, 2025 pm 02:18 PM

Tetapan saiz memori Redis perlu mempertimbangkan faktor -faktor berikut: Jumlah data dan trend pertumbuhan: Anggarkan saiz dan kadar pertumbuhan data yang disimpan. Jenis Data: Jenis yang berbeza (seperti senarai, hash) menduduki memori yang berbeza. Dasar caching: cache penuh, cache separa, dan dasar pemisahan mempengaruhi penggunaan memori. Puncak Perniagaan: Tinggalkan memori yang cukup untuk menangani puncak lalu lintas.

Ringkasan kelemahan phpmyadmin Ringkasan kelemahan phpmyadmin Apr 10, 2025 pm 10:24 PM

Kunci strategi pertahanan keselamatan phpmyadmin adalah: 1. Gunakan versi terkini Phpmyadmin dan kerap mengemas kini PHP dan MySQL; 2. Mengawal hak akses, penggunaan. Htaccess atau kawalan akses pelayan web; 3. Dayakan kata laluan yang kuat dan pengesahan dua faktor; 4. Menyokong pangkalan data secara teratur; 5. Berhati -hati semak fail konfigurasi untuk mengelakkan mendedahkan maklumat sensitif; 6. Gunakan Firewall Aplikasi Web (WAF); 7. Menjalankan audit keselamatan. Langkah-langkah ini secara berkesan dapat mengurangkan risiko keselamatan yang disebabkan oleh phpmyadmin disebabkan oleh konfigurasi yang tidak betul, versi yang lebih lama atau risiko keselamatan alam sekitar, dan memastikan keselamatan pangkalan data.

Apa yang perlu dilakukan jika penggunaan memori redis terlalu tinggi? Apa yang perlu dilakukan jika penggunaan memori redis terlalu tinggi? Apr 10, 2025 pm 02:21 PM

Memori Redis melonjak termasuk: jumlah data yang terlalu besar, pemilihan struktur data yang tidak betul, masalah konfigurasi (seperti tetapan MaxMemory terlalu kecil), dan kebocoran memori. Penyelesaian termasuk: penghapusan data yang telah tamat tempoh, menggunakan teknologi mampatan, memilih struktur yang sesuai, menyesuaikan parameter konfigurasi, memeriksa kebocoran memori dalam kod, dan kerap memantau penggunaan memori.

Cara melihat versi pelayan Redis Cara melihat versi pelayan Redis Apr 10, 2025 pm 01:27 PM

Soalan: Bagaimana untuk melihat versi pelayan Redis? Gunakan alat perintah Redis-cli -version untuk melihat versi pelayan yang disambungkan. Gunakan arahan pelayan INFO untuk melihat versi dalaman pelayan dan perlu menghuraikan dan mengembalikan maklumat. Dalam persekitaran kluster, periksa konsistensi versi setiap nod dan boleh diperiksa secara automatik menggunakan skrip. Gunakan skrip untuk mengautomasikan versi tontonan, seperti menyambung dengan skrip Python dan maklumat versi percetakan.

Cara memulakan pelayan dengan redis Cara memulakan pelayan dengan redis Apr 10, 2025 pm 08:12 PM

Langkah -langkah untuk memulakan pelayan Redis termasuk: Pasang Redis mengikut sistem operasi. Mulakan perkhidmatan Redis melalui Redis-server (Linux/macOS) atau redis-server.exe (Windows). Gunakan redis-cli ping (linux/macOS) atau redis-cli.exe ping (windows) perintah untuk memeriksa status perkhidmatan. Gunakan klien Redis, seperti redis-cli, python, atau node.js untuk mengakses pelayan.

Bagaimana melihat nilai kunci di redis Bagaimana melihat nilai kunci di redis Apr 10, 2025 pm 03:12 PM

Cara Melihat Nilai Utama Dalam Redis: Gunakan alat baris perintah redis: get & lt; key & gt; menggunakan Redis Desktop Manager: Cari kunci dalam tab "Kekunci" dan lihat lajur "Nilai" menggunakan klien Python: r.get ('key') Gunakan Node.js Client: client.get ('Key', (err, nilai) = & gt;

See all articles