- 業務効率化には何をすればいいのかな?
- Pythonで自動化ツールを作成できると聞くけど、具体的に何が作れるの?
- 自動化のアイデアが出てこない
こんな悩みを抱えている人に向けて、Pythonで作れる自動化ツールを解説していきます。
自動化ツールのアイデアが思いつかない方は、まずはこちらの記事を参考にしてください。
⇒【業務効率化】Pythonで作れる自動化ツール具体例・アイデア53選!
上記の記事の中から、
本記事では、シンプルなToDoリストの作成方法を解説します。
Pythonの標準ライブラリのみを使用するプログラムのため、初心者でも作成しやすいツールです。
自動化ツールの作成手順については、こちらの記事で解説しています。
⇒【Pythonで業務効率化】自動化ツールを自作する方法を5STEPで解説!
この記事を読みながら、ツールの作成にぜひ挑戦してください。
\ 学習時間をムダにしたくないなら /
おすすめオンラインスクール
Pythonを効率的に学習するには、オンラインスクールを活用するのがおすすめです。
おすすめオンラインスクールはこちらの記事で紹介しています。
⇒ これで決まり!Pythonオンラインスクール おすすめ3社を厳選!
アイデア「ToDoリスト」
概要
日々のタスクを管理するシンプルなToDoリストを作成
導入メリット
タスクを一目で確認でき、忘れずに処理できます。
導入効果
タスクを思い出す時間を1分、1日の回数を10回と想定した場合
年間40時間の短縮
完成イメージ
プロセス分析
ToDoリストを使用する時のプロセスを分析します。
通常のToDoリストの使い方では下記の項目が想定されます。
- タスクの内容と期限の入力
- 入力したタスクの確認が可能
- タスクの完了、未完了を区別可能
- 完了したタスクの削除
処理フロー
プロセス分析結果から、プログラムの処理フローを検討します。
- タスクを追加する入力フィールドを表示
- 追加されたタスクをリスト表示
- タスクの完了時には完了ボタンを押す
- 完了したタスクをリストから削除
- タスクの保存と読み込み機能
開発環境の準備
使用するライブラリ
処理フローから、下記ライブラリを使用することにします。
- tkinter:グラフィカルユーザーインターフェース(GUI)を作成する
- json:タスクデータを保存する
開発環境の準備
Pythonのバージョンはどれでも問題ありません。
PyInstallerで実行ファイルを作成する場合は、仮想環境を使用してください。実行ファイルのサイズを小さくすることができます。
仮想環境については、こちらの記事で解説しています。
⇒【Python仮想環境】初心者でもできるvenvによる仮想環境作成方法を解説!
プログラムのポイント
ポイント1「タスク情報のフォーマット」
まずはタスク情報を入力して、出力する部分のプログラムを作成します。
タスクの情報として「タスク内容」「納期」「完了しているか」の3つを持つことにします。
辞書を使用して、各キーワードを下記のように設定します。
- task:タスク内容。文字列。
- deadline:納期。文字列。
- completed:完了しているか。ブール型(True or False)
タスク情報を入力するプログラムは下記のようになります。
# タスクを保持するリストを初期化します。
tasks = []
# タスクの内容を入力フィールドから取得します。
task = input("タスクを入力してください:")
# 納期を入力フィールドから取得します。
deadline = input("納期を入力してください:")
while task != "": # タスクがなかったらループを抜けます。
if task and deadline: # タスクと納期の両方が入力されていれば、実行します
# タスクリストに新しいタスクを追加します。
tasks.append({"task": task, "deadline": deadline, "completed": False})
print()
print("タスクに追加があれば、記入してください")
# タスクの内容を入力フィールドから取得します。
task = input("タスクを入力してください:")
# 納期を入力フィールドから取得します。
deadline = input("納期を入力してください:")
print()
print("タスク情報")
print(tasks)
※Google Colabで表示
タスクを完了にするには、「completed」にTrueを入れます。
# タスクが完了したら、"completed"をTrueにします
tasks[0]["completed"] = True
# タスク情報の表示を整えます
for task in tasks:
task_info = f'{task["task"]} [納期: {task["deadline"]}]' # タスクと納期の情報を組み合わせます。
if task["completed"]: # タスクが完了していれば、
task_info += " [完了]" # 完了のマークを追加します。
print(task_info)
※Google Colabで表示
ポイント2「データの保存」
タスク内容と納期の情報はJSONファイルに保存します。
ユーザーは、タスクを一時的にではなく長期的に管理できるようになります。
TXTファイル(.txt)やCSVファイル(.csv)でもデータを保存できますが、今回はJSONファイルを使用しました。
JSONファイルを使用している理由は、構造化されたデータを扱いやすいためです。
タスクの内容、期限、完了状態などを管理しやすくしています。
JSONファイルの書き込み、読み込みは下記のコマンドを使用しています。
- 読み込み:json.load(ファイル名)
- 書き込み:json.dump(データ,ファイル名)
JSONファイルの書き込み、読み込みのコード例は下記のようになります。
import json
# タスク情報をJSONファイルに保存します
with open("tasks.json", "w") as f: # タスク保存ファイルを開きます。
json.dump(tasks, f) # タスクリストの内容をファイルに書き込みます。
# タスク情報をJSONファイルから読み込みます
with open("tasks.json", "r") as f: # タスク保存ファイルを読み込みます。
tasks = json.load(f) # ファイルの内容をタスクリストに反映します。
ポイント3「GUIの使用」
tkinterライブラリを用いてユーザーインターフェースを作成しています。
tkinterとは、Pythonで標準的に利用されるGUIツールキットのことです。
ウィンドウ、ボタン、テキストボックスなどの基本的なオブジェクトを作成することができます。
tkinterを使用することで、コマンドラインベースのインターフェースに比べて直感的で理解しやすいグラフィカルなユーザーインターフェースを簡単に作成できます。
ToDoリストでは、使い方が直感的にわかることや、タスクや納期が一目で確認できることを実現するため、tkinterライブラリを使用しています。
tkinterで使用しているオブジェクトは以下の通りです。
- タスクを一覧表示する:Listbox
- タスク一覧をスクロールさせる:Scrollbar
- テキスト表記:Label
- 入力用のテキストボックス:Entry
- 各種ボタン:Button
動作紹介
作成した「ToDoリスト」の画面はコチラになります。
リストにタスクを追加する場合は、「タスク」と「納期」のテキストボックスに入力して、「タスクを追加」ボタンを押します。
追加されたタスクは、上部に表示されます。
タスクは何個でも追加でき、画面に収まらない場合でも、右にあるスクロールバーで確認することができます。
タスクが完了したら、タスクを選択した状態で、「選択したタスクを完了にする」ボタンを押します。
タスクの右側に「完了」の表記が追加され、一目で完了していることが確認できます。
タスクを選択した状態で、「選択したタスクを削除」ボタンを押すことで、完了タスクを削除することができます。
ソースコード
ソースコードはコチラでご確認ください。
まとめ
本記事では、シンプルなToDoリストの作成方法を解説しました。
tkinterの設定方法が少し難しいかと思いますが、全体として使用するライブラリが少なく、作成しやすいツールです。
機能を追加することはいくらでもできるので、既存のToDoリストでは物足りない方は紹介したソースコードの改良に挑戦してください。
Pythonを効率的に学習するために
Pythonの学習方法は、書籍やyoutube、スクールなどがありますが、一番のおすすめはオンラインスクールでの学習です。
オンラインスクールを勧める理由は以下の通り。
- 学習カリキュラムが整っているので、体系的に学ぶことができる。
- 時間や場所を選ばずに、自分のペースで学習できる。
- 学習で詰まったときに、気軽に質問できる環境がある。
オンラインスクールについてはコチラの記事で紹介しています。
⇒ これで決まり!Pythonオンラインスクール おすすめ3社を厳選!
2024年10月1日から給付制度が拡充され、最大80%給付されるスクールもあります。
Python学習を効率的に進めるために、スクールの検討をしてみてください。
おすすめオンラインスクール
コスト重視:デイトラ
AIスキル重視:Aidemy PREMIUM
転職重視:キカガク
最後まで読んでいただきありがとうございます!
ご意見、ご感想があれば、コメントを頂けるとうれしいです!!