目次

ピボット テーブルとフィルター データを生成する Excel ファイル、ファイル名: Excel_to_pivot.py

DOS ウィンドウを開き、2 つの py ファイルが配置されているディレクトリに切り替えます。パス。
一部のパートナーは最近 Python 環境をインストールしたばかりなので、ファイルが大きすぎるという問題が発生する可能性があります。存在しない。たとえば、私のコンピューターには Python の依存関係パッケージと anaconda が多数インストールされています。パッケージ化されたファイルは実際には 660M です。パッケージ化に時間がかかり、実行中にスタックします。その後、修正後、31M に減少しました。パッケージ高速で数秒で実行できます。解決策は、Windows システムに Python 仮想環境をインストールすることです。次の操作は、Python がコンピュータにインストールされている場合にのみ実行できます。
配置虚拟环境
安装虚拟环境依赖包
创建虚拟环境命令
ホームページ バックエンド開発 Python チュートリアル 強すぎる! Python はデスクトップ ガジェットを開発し、コードに繰り返しの作業を行わせます。

強すぎる! Python はデスクトップ ガジェットを開発し、コードに繰り返しの作業を行わせます。

May 06, 2023 am 11:10 AM
python 道具 コード

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

この記事を書こうと思ったきっかけは、「Python を使ってデータ ソースに基づいてピボット テーブルを自動生成する方法」についての友人からの質問でした。この質問の背後にある非常に良いアイデアです。解決策のアイデアは、コードに繰り返しの作業を行わせることで、作業負荷を軽減し、エラーを減らすことです。

Python で開発されたガジェットは、実際に Python プログラムを exe にパッケージ化しており、共有して使用することができます。コンピューターに Python 環境がインストールされていない場合でも使用できます。コードを使用して改善します。作業効率を高め、残業を最小限に抑えます。

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

コンテンツの概要

  • 明確な要件: ピボット テーブルを自動的に生成 [この部分は繰り返しの作業で置き換えることができます】
  • サードパーティの依存ライブラリをインストールします: tkinter と pyinstaller
  • # コード実装: ピボット テーブルとデスクトップ GUI リンケージ設計を生成するための Python の 2 つの部分が含まれます

  • パッケージ Python プログラムは exe 実行可能ファイルを生成します

  • exe ファイルが大きすぎる可能性がある問題を解決します: 仮想環境をインストールします
1. 要件の背景


# は機能します 反復的な操作の場合は、サプライヤー名、月、倉庫数量の 3 つのフィールドを使用して、目的のピボット テーブル形式を生成します。


太强了!Python 开发桌面小工具,让代码替我们干重复的工作!2. サードパーティの依存ライブラリをインストールする


デスクトップ ウィンドウを作成します。ここでは GUI ライブラリである tkinter を使用します。 Python に付属しており、インストール後すぐに使用できます。

pip install tkinter
ログイン後にコピー

pyinsatller を使用してプログラムを exe にパッケージ化します。利点は、コードをサーバーにデプロイする必要がないことです。パッケージ化された exe を相手に直接送信でき、小さくて軽いのにとても機能的です。

pip install pyinstaller
ログイン後にコピー

3. コードの実装


ピボット テーブルとフィルター データを生成する Excel ファイル、ファイル名: 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))
ログイン後にコピー

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!デザインデスクトップウィンドウ関数、ファイル名: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()
ログイン後にコピー

太强了!Python 开发桌面小工具,让代码替我们干重复的工作!実行結果が上記のようであれば、コードに問題がないことを意味します。次のステップに進むことができます。

4. Python プログラムをパッケージ化して exe を生成します


DOS ウィンドウを開き、2 つの py ファイルが配置されているディレクトリに切り替えます。パス。

pyinsatller -F -w opration.py
ログイン後にコピー

太强了!Python 开发桌面小工具,让代码替我们干重复的工作! pyinstaller コマンドの共通オプション パラメーター:


-i アプリケーションにアイコンを追加します
  • -F は、パッケージ化後に exe 形式のファイルが 1 つだけ生成されることを指定します。

  • -D –onedir は、exe ファイルを含むディレクトリを作成しますが、多くのファイルに依存します (デフォルト オプション)

  • -c –console, –nowindowed コンソールを使用、インターフェースなし (デフォルト)

  • -w –windowed、-noconsole ウィンドウを使用、コンソールなし
  • # -p 検索パスの追加

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

現在のディレクトリに、build と 2 つのフォルダーが生成されます。距離。 Dist にはすべての実行可能な exe ファイルが含まれています。ショートカットをデスクトップに送信し、opration.exe をクリックして実行します。そのショートカットをデスクトップに送信してダブルクリックできます。 太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

5. exe ファイルが大きすぎる問題を解決する

一部のパートナーは最近 Python 環境をインストールしたばかりなので、ファイルが大きすぎるという問題が発生する可能性があります。存在しない。たとえば、私のコンピューターには Python の依存関係パッケージと anaconda が多数インストールされています。パッケージ化されたファイルは実際には 660M です。パッケージ化に時間がかかり、実行中にスタックします。その後、修正後、31M に減少しました。パッケージ高速で数秒で実行できます。解決策は、Windows システムに Python 仮想環境をインストールすることです。次の操作は、Python がコンピュータにインストールされている場合にのみ実行できます。


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

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

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

配置虚拟环境

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

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

安装虚拟环境依赖包

pip install virtualenv
pip install virtualenvwrapper-win
ログイン後にコピー

创建虚拟环境命令

mkvirtualenv -p="C:UserscherichAppDataLocalProgramsPythonPython38python.exe" py38
ログイン後にコピー

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

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

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

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

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

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

退出虚拟环境

deactivate
ログイン後にコピー

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

以上が強すぎる! Python はデスクトップ ガジェットを開発し、コードに繰り返しの作業を行わせます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

メモリに対するRedisの持続性の影響は何ですか? メモリに対するRedisの持続性の影響は何ですか? Apr 10, 2025 pm 02:15 PM

Redis Persistenceは余分なメモリを取り、RDBはスナップショットを生成するときに一時的にメモリの使用量を増加させ、AOFはログを追加するときにメモリを取り上げ続けます。影響要因には、データのボリューム、永続性ポリシー、Redis構成が含まれます。影響を緩和するために、RDBスナップショットポリシーを合理的に構成し、AOF構成を最適化し、ハードウェアをアップグレードし、メモリの使用量を監視できます。さらに、パフォーマンスとデータセキュリティのバランスを見つけることが重要です。

2時間のPython計画:現実的なアプローチ 2時間のPython計画:現実的なアプローチ Apr 11, 2025 am 12:04 AM

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

ビジネスのニーズに応じてRedisメモリサイズを設定する方法は? ビジネスのニーズに応じてRedisメモリサイズを設定する方法は? Apr 10, 2025 pm 02:18 PM

Redisメモリサイズの設定は、次の要因を考慮する必要があります。データ量と成長傾向:保存されたデータのサイズと成長率を推定します。データ型:異なるタイプ(リスト、ハッシュなど)は異なるメモリを占めます。キャッシュポリシー:完全なキャッシュ、部分キャッシュ、フェージングポリシーは、メモリの使用に影響します。ビジネスピーク:トラフィックピークに対処するのに十分なメモリを残します。

phpmyAdminの脆弱性の概要 phpmyAdminの脆弱性の概要 Apr 10, 2025 pm 10:24 PM

PHPMyAdminセキュリティ防衛戦略の鍵は次のとおりです。1。PHPMyAdminの最新バージョンを使用し、PHPとMySQLを定期的に更新します。 2.アクセス権を厳密に制御し、.htaccessまたはWebサーバーアクセス制御を使用します。 3.強力なパスワードと2要素認証を有効にします。 4.データベースを定期的にバックアップします。 5.機密情報が公開されないように、構成ファイルを慎重に確認します。 6。Webアプリケーションファイアウォール(WAF)を使用します。 7.セキュリティ監査を実行します。 これらの測定は、不適切な構成、古いバージョン、または環境セキュリティのリスクにより、PHPMyAdminによって引き起こされるセキュリティリスクを効果的に削減し、データベースのセキュリティを確保することができます。

Redisメモリの使用量が高すぎる場合はどうすればよいですか? Redisメモリの使用量が高すぎる場合はどうすればよいですか? Apr 10, 2025 pm 02:21 PM

Redisメモリの急上昇には、データ量が大きすぎる、データ構造の選択、構成の問題(Maxmemory設定が小さすぎるなど)、およびメモリリークが含まれます。ソリューションには、期限切れのデータの削除、圧縮技術の使用、適切な構造の選択、構成パラメーターの調整、コードのメモリリークのチェック、およびメモリ使用量の定期的な監視が含まれます。

Redisのキーの価値を表示する方法 Redisのキーの価値を表示する方法 Apr 10, 2025 pm 03:12 PM

Redisでキー値を表示する方法:Redisコマンドラインツールを使用します:redisデスクトップマネージャーを使用する&lt; key&gt; "keys"タブでキーを見つけ、「value」列を表示し、pythonクライアントを使用します:r.get( 'key')を使用します。

Redisでサーバーを開始する方法 Redisでサーバーを開始する方法 Apr 10, 2025 pm 08:12 PM

Redisサーバーを起動する手順には、以下が含まれます。オペレーティングシステムに従ってRedisをインストールします。 Redis-Server(Linux/Macos)またはRedis-Server.exe(Windows)を介してRedisサービスを開始します。 Redis-Cli ping(Linux/macos)またはRedis-Cli.exePing(Windows)コマンドを使用して、サービスステータスを確認します。 Redis-Cli、Python、node.jsなどのRedisクライアントを使用して、サーバーにアクセスします。

Oracleデータベースの作成方法Oracleデータベースを作成する方法 Oracleデータベースの作成方法Oracleデータベースを作成する方法 Apr 11, 2025 pm 02:33 PM

Oracleデータベースを作成するのは簡単ではありません。根本的なメカニズムを理解する必要があります。 1.データベースとOracle DBMSの概念を理解する必要があります。 2。SID、CDB(コンテナデータベース)、PDB(プラグ可能なデータベース)などのコアコンセプトをマスターします。 3。SQL*Plusを使用してCDBを作成し、PDBを作成するには、サイズ、データファイルの数、パスなどのパラメーターを指定する必要があります。 4.高度なアプリケーションは、文字セット、メモリ、その他のパラメーターを調整し、パフォーマンスチューニングを実行する必要があります。 5.ディスクスペース、アクセス許可、パラメーター設定に注意し、データベースのパフォーマンスを継続的に監視および最適化します。 それを巧みに習得することによってのみ、継続的な練習が必要であることは、Oracleデータベースの作成と管理を本当に理解できます。

See all articles