Table des matières
1.
Rendez le travail répétitif, utilisez les trois champs de nom du fournisseur, de mois et de montant d'entreposage pour générer le format de tableau croisé dynamique souhaité.

Fichier Excel pour générer un tableau croisé dynamique et filtrer les données, nom du fichier : excel_to_pivot.py

Ouvrez la fenêtre DOS et basculez vers le répertoire où se trouvent les deux fichiers py. Attention à ne pas avoir de caractères chinois dans le chemin.

Certains partenaires viennent d'installer l'environnement Python il n'y a pas longtemps, et ce problème de fichier trop volumineux n'existe peut-être pas. Par exemple, j'ai beaucoup de packages de dépendances Python et anaconda installés sur mon ordinateur. Le fichier empaqueté fait en fait 660 Mo. Il prend beaucoup de temps à empaqueter et est bloqué lors de l'exécution. Plus tard, il a été réduit à 31 Mo après rectification. est rapide et peut être exécuté en quelques secondes. La solution consiste à installer un environnement virtuel Python sous le système Windows. Les opérations suivantes ne peuvent être effectuées que si Python a été installé sur l'ordinateur.
配置虚拟环境
安装虚拟环境依赖包
创建虚拟环境命令
Maison développement back-end Tutoriel Python Trop fort ! Python développe des gadgets de bureau et laisse le code faire le travail répétitif à notre place !

Trop fort ! Python développe des gadgets de bureau et laisse le code faire le travail répétitif à notre place !

May 06, 2023 am 11:10 AM
python 工具 代码

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

L'intention initiale de décider d'écrire cet article est venue d'une question d'un ami, sur "Comment utiliser Python pour générer automatiquement un tableau croisé dynamique basé sur la source de données". Il y a une très bonne idée de solution derrière ce problème. , laissez le code le faire à notre place. Effectuez un travail répétitif, réduisant ainsi la charge de travail et les erreurs.

Les gadgets développés par Python emballent en fait des programmes Python dans un exe, qui peut être utilisé après le partage même si l'ordinateur n'a pas d'environnement Python installé, il peut être utilisé pour améliorer l'efficacité du travail et minimiser les heures supplémentaires.

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

Aperçu du contenu

  • Exigences claires : générer automatiquement un tableau croisé dynamique [Cette partie peut être remplacée par votre travail répétitif]
  • Installer des bibliothèques dépendantes tierces : tkinter et pyinstaller
  • Implémentation du code : inclut Python en deux parties génère un tableau croisé dynamique et une conception de liaison avec l'interface graphique du bureau
  • Packages du programme Python pour générer un fichier exécutable exe
  • Résolvez le problème selon lequel le fichier exe peut être trop volumineux : installez un environnement virtuel

1.
Rendez le travail répétitif, utilisez les trois champs de nom du fournisseur, de mois et de montant d'entreposage pour générer le format de tableau croisé dynamique souhaité.


太强了!Python 开发桌面小工具,让代码替我们干重复的工作!2. Installez des bibliothèques dépendantes tierces


Créez une fenêtre de bureau Ici, nous utilisons tkinter, qui est la propre bibliothèque GUI de Python et peut être utilisée après l'installation.

pip install tkinter
Copier après la connexion

Utilisez pyinsatller pour empaqueter le programme dans un exe. L'avantage est que vous n'avez pas besoin de déployer le code sur le serveur. Vous pouvez directement envoyer l'exe empaqueté à l'autre partie et vous pouvez l'utiliser directement. convivial pour cette fonction petite et légère.

pip install pyinstaller
Copier après la connexion

3. Implémentation du code


Fichier Excel pour générer un tableau croisé dynamique et filtrer les données, nom du fichier : 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))
Copier après la connexion

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!Fonction de fenêtre de bureau de conception, nom du fichier : 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()
Copier après la connexion

太强了!Python 开发桌面小工具,让代码替我们干重复的工作! si les résultats d'exécution sont comme ci-dessus, indiquant qu'il n'y a aucun problème avec le code et que vous pouvez passer à l'étape suivante.

4. Packagez le programme Python pour générer l'exe


Ouvrez la fenêtre DOS et basculez vers le répertoire où se trouvent les deux fichiers py. Attention à ne pas avoir de caractères chinois dans le chemin.

pyinsatller -F -w opration.py
Copier après la connexion

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!Paramètres facultatifs communs de la commande pyinstaller :


-i Ajouter une icône à l'application
  • -F Spécifie que seul un fichier au format exe sera généré après l'empaquetage

  • -D –onedir Créer un répertoire, contient des fichiers exe, mais dépendra de nombreux fichiers (option par défaut)

  • -c –console, –nowindowed Utiliser la console, pas d'interface (par défaut)

  • -w –windowed, –noconsole Utiliser la fenêtre, non console

  • -p Ajouter un chemin de recherche

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

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!Dans le répertoire courant, deux dossiers seront générés : build et dist. Dist contient tous les fichiers exe exécutables. Envoyez le raccourci sur le bureau et cliquez sur opration.exe pour l'exécuter. Vous pouvez envoyer son raccourci sur le bureau et double-cliquer dessus.

5. Résolvez le problème du fichier exe peut-être trop volumineux


Certains partenaires viennent d'installer l'environnement Python il n'y a pas longtemps, et ce problème de fichier trop volumineux n'existe peut-être pas. Par exemple, j'ai beaucoup de packages de dépendances Python et anaconda installés sur mon ordinateur. Le fichier empaqueté fait en fait 660 Mo. Il prend beaucoup de temps à empaqueter et est bloqué lors de l'exécution. Plus tard, il a été réduit à 31 Mo après rectification. est rapide et peut être exécuté en quelques secondes. La solution consiste à installer un environnement virtuel Python sous le système Windows. Les opérations suivantes ne peuvent être effectuées que si Python a été installé sur l'ordinateur.


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

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

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

配置虚拟环境

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

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

安装虚拟环境依赖包

pip install virtualenv
pip install virtualenvwrapper-win
Copier après la connexion

创建虚拟环境命令

mkvirtualenv -p="C:UserscherichAppDataLocalProgramsPythonPython38python.exe" py38
Copier après la connexion

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

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

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

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

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

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

退出虚拟环境

deactivate
Copier après la connexion

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quel est l'impact de la persistance redis sur la mémoire? Quel est l'impact de la persistance redis sur la mémoire? Apr 10, 2025 pm 02:15 PM

Redis Persistance prendra une mémoire supplémentaire, RDB augmente temporairement l'utilisation de la mémoire lors de la génération d'instantanés, et AOF continue de prendre de la mémoire lors de l'ajout de journaux. Les facteurs d'influence comprennent le volume des données, la politique de persistance et la configuration de Redis. Pour atténuer l'impact, vous pouvez raisonnablement configurer les stratégies d'instantané RDB, optimiser la configuration AOF, mettre à niveau le matériel et le surveiller l'utilisation de la mémoire. En outre, il est crucial de trouver un équilibre entre les performances et la sécurité des données.

Le plan Python de 2 heures: une approche réaliste Le plan Python de 2 heures: une approche réaliste Apr 11, 2025 am 12:04 AM

Vous pouvez apprendre les concepts de programmation de base et les compétences de Python dans les 2 heures. 1. Apprenez les variables et les types de données, 2. Flux de contrôle maître (instructions et boucles conditionnelles), 3. Comprenez la définition et l'utilisation des fonctions, 4. Démarrez rapidement avec la programmation Python via des exemples simples et des extraits de code.

Comment définir la taille de la mémoire Redis en fonction des besoins de l'entreprise? Comment définir la taille de la mémoire Redis en fonction des besoins de l'entreprise? Apr 10, 2025 pm 02:18 PM

Le réglage de la taille de la mémoire redis doit prendre en compte les facteurs suivants: volume de données et tendance de croissance: estimer la taille et le taux de croissance des données stockées. Type de données: différents types (tels que les listes, les hachages) occupent une mémoire différente. Politique de mise en cache: le cache complet, le cache partiel et les politiques de phasage affectent l'utilisation de la mémoire. Péx commercial: laissez suffisamment de mémoire pour faire face aux pics de trafic.

Résumé des vulnérabilités de phpmyadmin Résumé des vulnérabilités de phpmyadmin Apr 10, 2025 pm 10:24 PM

La clé de la stratégie de défense de sécurité PHPMYADMIN est: 1. Utilisez la dernière version de PhpMyAdmin et mettez régulièrement à jour PHP et MySQL; 2. Contrôler strictement les droits d'accès, utiliser .htaccess ou le contrôle d'accès au serveur Web; 3. Activer le mot de passe fort et l'authentification à deux facteurs; 4. Sauvegarder régulièrement la base de données; 5. Vérifiez soigneusement les fichiers de configuration pour éviter d'exposer des informations sensibles; 6. Utiliser le pare-feu d'application Web (WAF); 7. Effectuer des audits de sécurité. Ces mesures peuvent réduire efficacement les risques de sécurité causés par le phpmyadmin en raison d'une configuration inappropriée, d'une version antérieure ou de risques de sécurité environnementale, et d'assurer la sécurité de la base de données.

Que faire si l'utilisation de la mémoire redis est trop élevée? Que faire si l'utilisation de la mémoire redis est trop élevée? Apr 10, 2025 pm 02:21 PM

Redis Memory Soaring comprend: un volume de données trop important, une mauvaise sélection de structure de données, des problèmes de configuration (tels que les paramètres maxmemory trop petits) et des fuites de mémoire. Les solutions incluent: la suppression des données expirées, utiliser la technologie de compression, sélectionner les structures appropriées, ajuster les paramètres de configuration, vérifier les fuites de mémoire dans le code et surveiller régulièrement l'utilisation de la mémoire.

Comment afficher la version serveur de redis Comment afficher la version serveur de redis Apr 10, 2025 pm 01:27 PM

Question: Comment afficher la version Redis Server? Utilisez l'outil de ligne de commande redis-Cli --version pour afficher la version du serveur connecté. Utilisez la commande Info Server pour afficher la version interne du serveur et devez analyser et retourner des informations. Dans un environnement de cluster, vérifiez la cohérence de la version de chaque nœud et peut être vérifiée automatiquement à l'aide de scripts. Utilisez des scripts pour automatiser les versions de visualisation, telles que la connexion avec les scripts Python et les informations d'impression.

Comment démarrer le serveur avec redis Comment démarrer le serveur avec redis Apr 10, 2025 pm 08:12 PM

Les étapes pour démarrer un serveur Redis incluent: Installez Redis en fonction du système d'exploitation. Démarrez le service Redis via Redis-Server (Linux / MacOS) ou Redis-Server.exe (Windows). Utilisez la commande redis-Cli Ping (Linux / MacOS) ou redis-Cli.exe Ping (Windows) pour vérifier l'état du service. Utilisez un client redis, tel que redis-cli, python ou node.js pour accéder au serveur.

Comment visualiser la valeur d'une clé dans redis Comment visualiser la valeur d'une clé dans redis Apr 10, 2025 pm 03:12 PM

Comment afficher les valeurs de clé dans Redis: Utilisez Redis Command Line Tool: get & lt; key & gt; Utilisation de Redis Desktop Manager: Trouvez la clé dans l'onglet "Keys" et affichez la colonne "Valeur" Utilisez Python Client: R.Get ('Key') Utilisez Node.js Client: Client.get ('Key', (err, valeur) = & gt; {...}))

See all articles