Python スクリプトを使用してタスクを自動化する方法

Python Sukuriputowo Shi Yongshitetasukuwo Zi Dong Huasuru Fang Fa



プログラマー、コーダー、開発者は、Python スクリプトを使用してメソッドを自動化し、反復的な操作を実行することで重要な時間と労力を節約できます。 Python は、Java と同様に、プロセスの自動化に優れたコンピュータ言語です。他の言語と比較すると、比較的習得が簡単です。また、大規模で活気のあるコミュニティと、特定のタスクを自動化するための組み込みライブラリも備えています。

Pythonのインストール

タスクの自動化を開始する前に、コンピューターまたはシステムに Python をインストールします。 Python をインストールするには、まず Python の公式 Web サイトにアクセスする必要があります。インストール中に必ず Python をシステムの PATH に追加してください。







  1. IDE またはテキスト エディターを選択します

Python スクリプトの作成には、任意のテキスト エディタを使用できます。それでも、PyCharm、Visual Studio Code、Jupyter Notebook などの統合開発環境(IDE)は、構文ハイライトやデバッグなどのツールを使用してプロセスを改善できます。ただし、この記事では Notepad++ を使用します。



  1. 自動化する必要があるタスクを決定する

これには、一括メールの送信、レポートの作成、ファイルのダウンロード、バックアップの作成など、あらゆるものが含まれる可能性があります。



  1. ライブラリと関数を調査する

サブタスクを自動化できる関数とライブラリを見てください。





  1. Python でスクリプトを書く

ここですべての要素を組み立てて、完全に機能するスクリプトを作成します。

  1. タスク

スプレッドシートに保存されているデータからのレポートの生成を自動化します。



  1. Python スクリプト

Python スクリプトを使用してスプレッドシートからデータを読み取り、PDF、HTML、CSV などのさまざまな形式でレポートを生成できます。さらに、スクリプトを使用して、電子メールまたは Slack を通じてレポートを関係者に自動的に配布することもできます。

スプレッドシート データを使用してレポートを作成するには、複数の手順が必要です。 Pandas ライブラリを使用して Excel スプレッドシートからデータを読み取り、CSV レポートを作成する簡略化された Python スクリプトを提供します。このスクリプトに基づいて、他の形式でより複雑なレポートを作成し、必要に応じて電子メールや Slack 通知を自動化する可能性があることに注意してください。

必要なライブラリをインストールする

スクリプトを実行する前に、Pandas ライブラリがまだインストールされていない場合はインストールする必要があります。

ピップ インストール パンダopenpyxl

Python コードには、generate_report() という関数があり、2 つの引数を取ります。従業員の給与データを含む Excel スプレッドシートへのパスと、レポートを保存する CSV ファイルへのパスです。

この関数は、まず Excel スプレッドシートを Pandas DataFrame オブジェクトに読み取ります。その後、必要に応じてデータの処理と分析を実行します。この例では、「Salary」列の合計が関数によって計算されます。

次に、関数は全従業員の給与総額を含むレポート文字列を作成します。最後に、この関数はレポートを CSV ファイルに保存します。

コードのメイン関数では、入力 Excel ファイルと出力レポート ファイルを指定し、generate_report() 関数を呼び出してレポートを作成します。

GenReport.py:
パンダをインポートする として pd_obj
def 生成_レポート ( emp_salary_data、emp_salary_report_file ) :
試す:
# Excel スプレッドシートからデータを読み取る
df_obj = pd_obj.read_excel ( emp_salary_data )
# 必要に応じてデータ処理と分析を実行します
# 簡単にするために、列の合計を計算すると仮定します。
給与合計 = df_obj [ '給料' 。和 ( )
# レポートを作成する
給与レポート = f 「全従業員の給与の合計: {salary_total}」
# レポートを CSV ファイルに保存します
開いた状態で ( emp_salary_report_file、 'で' ) として csv_obj:
csv_obj.write ( 給与報告書 )

印刷する ( f 「レポートが生成され、{emp_salary_report_file} に保存されました」 )
例外を除く として 元:
印刷する ( f 「エラーが発生しました: {str(e)}」 )
もし __名前__ == '__主要__' :
# 入力Excelファイルと出力レポートファイルを指定
emp_salary_data = 「input_employee_data.xlsx」
emp_salary_report_file = 「給与合計.csv」
#generate_report 関数を呼び出してレポートを作成します
レポートの生成 ( emp_salary_data、emp_salary_report_file )

入力従業員ファイルのデータは次のとおりです。

スクリプトをテストする

スクリプトを作成した後、スクリプトが意図したとおりに機能することを確認するために、徹底的にテストする必要があります。 Python コンパイラーを使用して、自動化するファイルをテストします。この場合、このファイルはレポートを正常に生成し、CSV ファイルに保存します。

スクリプトをスケジュールまたはトリガーする

自動化の要件に応じて、Python スクリプトをさまざまな方法で実行できます。

  • 手動実行: IDE で実行するか、次のコマンドを使用してコマンド ライン経由でスクリプトを手動で実行します。 Python GenerateReport.py
  • スケジュールされたタスク (Windows): Windows タスク スケジューラを使用して、特定の時間または間隔でスクリプトを実行できます。 Windows サービスを使用して、特定のイベントを呼び出すこともできます。
  • Cron ジョブ (Linux/macOS): cron ジョブを使用すると、Unix 系システム上で特定の時間にスクリプトを実行するようにスケジュールを設定できます。
  • イベント駆動型: ウォッチドッグなどのライブラリを使用したり、Webhook と統合したりすることで、ファイル変更などの特定のイベントに応答してスクリプトをトリガーできます。

Python を使用した MySQL バックアップの自動化

MySQL サーバーのバックアップ プロセスを 1 時間ごとのスケジュールで自動化するには、Python を「mysqlclient」ライブラリと組み合わせて使用​​し、MySQL データベースに接続してバックアップを作成します。また、Cron のようなタスク スケジューラ (Unix ベースの場合) を使用できます。システム) を使用して、Python スクリプトを 1 時間間隔で実行します。以下は、この目的に使用できる Python スクリプトです。

ステップ 1: 必要なライブラリをインストールする

MySQL 接続用に「mysqlclient」ライブラリをインストールする必要があります。 pip を使用してインストールできます。

ピップ インストール mysqlクライアント

ピップ インストール 構成パーサー

ステップ 2: 構成ファイルを作成する

テキスト ファイル (mysqlconfig.ini など) を作成して、パスワードを含む MySQL 接続情報を保存します。 「mysqlconfig.ini」ファイルの例を次に示します。

[ mysql ]
mySQL_DB_HOST = ローカルホスト
mySQL_DB_USERNAME = ルート
mySQL_DB_PASSWORD = 1234
mySQL_DB_DATABASE_NAME = brandsw9_data

ステップ 3: MySQL の Bin ディレクトリを確認する :

「mysqldump」コマンドは、MySQL bin ディレクトリにある必要があります。システムの PATH に bin ディレクトリが含まれていることを確認します。 PATH 環境変数を変更して、MySQL bin の場所を含めることができます。

Windows の場合: システムの PATH を編集するには、「スタート」メニューの「環境変数」を調べ、MySQL bin ディレクトリ (例: C:\Program Files\MySQL\MySQL Server X.X\bin) を PATH 変数に追加します。

ステップ 3: Python スクリプトを作成する

MySQL バックアップ プロセスを自動化するための Python スクリプト (例: MySQLBackup.py) を作成します。必要に応じて、プレースホルダーをデータベース接続の詳細とファイル パスに置き換えます。

サブプロセスのインポート として sp
日時インポート日時から として dt_obj
インポート構成パーサー として mysql_confg
# MySQL データベース接続の詳細
# 設定ファイルから MySQL 接続の詳細をロードします
config_obj = mysql_confg.ConfigParser ( )
config_obj.read ( 「mysqlconfig.ini」 ) # 必要に応じてパスを調整します
mySQL_DB_HOST = config_obj.get ( 「mysql」 「mySQL_DB_HOST」 )
mySQL_DB_USERNAME = config_obj.get ( 「mysql」 'mySQL_DB_USERNAME' )
mySQL_DB_PASSWORD = config_obj.get ( 「mysql」 「mySQL_DB_PASSWORD」 )
mySQL_DB_DATABASE_NAME = config_obj.get ( 「mysql」 「mySQL_DB_DATABASE_NAME」 )
# バックアップディレクトリ
bk_dir = 「バックアップディレクトリ/」
# バックアップファイル名の現在の日付と時刻を取得します
タイムスタンプ = dt_obj.now ( ) .strftime ( '%Y%m%d%H%M%S' )
# バックアップファイル名を定義します
my_sql_bk = f 「backup_{timestamp_oj}.sql」
# MySQLダンプコマンド
mysql_dump_cmd = f 'mysqldump -h {mySQL_DB_HOST} -u {mySQL_DB_USERNAME} -p{mySQL_DB_PASSWORD} {mySQL_DB_DATABASE_NAME} > {bk_dir}{my_sql_bk}'

試す:
# MySQL dump コマンドを実行してバックアップを作成します
スプラン ( mysql_dump_cmd、 シェル =本当です、 チェック =本当 )
印刷する ( f 「バックアップが完了し、「{bk_dir}」に「{my_sql_bk}」として保存されました」 )
sp.CalledProcessError を除く として それは次のとおりです。
印刷する ( f 「バックアップ作成エラー: {str(e)}」 )

ステップ 4: コードをテストして実行する

ステップ 5: Windows タスク スケジューラを使用してスクリプトをスケジュールする

次に、Windows タスク スケジューラを使用して、Python スクリプトが自動的に実行されるようにスケジュールを設定しましょう。

「スタート」メニューの検索バーに「タスク スケジューラ」と入力するか、「ファイル名を指定して実行」ダイアログ ボックスに「taskschd.msc」と入力して、Windows タスク スケジューラを起動します (Win + R)。

タスク スケジューラの左ペインから「タスク スケジューラ ライブラリ」を選択します。

右側のペインで「基本タスクの作成…」をクリックして「基本タスクの作成ウィザード」を開きます。

タスクの名前と説明を入力します。次に、「次へ」を押します。

トリガーの種類として「毎日」を選択します (1 時間ごとに実行する場合でも、これにより繰り返し間隔を設定できます)。次に、「次へ」をクリックします。

バックアップ タスクの開始日時を指定します。

「タスクを繰り返す間隔:」を選択し、1 時間に設定します。

期間を「1日」に設定します。次に、「次へ」をクリックします。

「プログラムの開始」を選択し、「次へ」を押します。

「参照」をクリックして、Python 実行可能ファイル (python.exe) を参照して選択します。

「参照」をクリックして、Python 実行可能ファイル (python.exe) を参照して選択します。

「引数の追加」フィールドに Python スクリプトへのフルパス (例: C:\path\to\mysql_backup.py) を入力します。

Python スクリプトを含むディレクトリ (例: C:\path\to\) を [開始場所 (オプション)] フィールドに入力します。

「次へ」をクリックします。

タスク設定を確認し、「完了」をクリックしてタスクを作成します。

結論

Python のツールとそのベスト プラクティスを利用することで、ワークフローの時間を短縮し、より重要なアクティビティに時間を充てる、信頼性が高く効果的な自動スクリプトを構築できます。 Python スクリプトを使用してタスクを自動化するのに確実に役立つ例をいくつか提供しました。