著者による画像
単純なプロジェクトを構築することは、Python やその他のプログラミング言語全般を学習するのに最適な方法です。 for ループの記述、組み込み関数の使用、ファイルの読み取りなどの構文を学習できます。しかし、実際に「学ぶ」のは、何かを作り始めたときだけです。
「構築して学習する」アプローチに従って、コマンド ラインで実行できる単純な TO-DO リスト アプリをコーディングしてみましょう。その過程で、コマンドライン引数の解析やファイルとファイル パスの操作などの概念を学習します。カスタム関数の定義などの基本も再確認します。
だから始めましょう!
このチュートリアルに沿ってコーディングすると、コマンド ラインで実行できる TO-DO リスト アプリを構築できるようになります。では、アプリに何をしてもらいたいですか?
紙の TO-DO リストと同じように、タスクを追加したり、すべてのタスクを検索したり、タスクを完了した後に削除したり (そう、取り消し線を引くか、紙に完了のマークを付ける) ことができる必要があります。そこで、次のことを実行できるアプリを構築します。
タスクをリストに追加します。
著者による画像
リスト上のすべてのタスクのリストを取得します。
著者による画像
また、終了後にタスクを (インデックスを使用して) 削除します。
著者による画像
さあ、コーディングを始めましょう!
まず、プロジェクト用のディレクトリを作成します。そして、プロジェクト ディレクトリ内に Python スクリプト ファイルを作成します。これは、To-Do リスト アプリのメイン ファイルになります。それを呼びましょう todo.py
.
このプロジェクトにはサードパーティのライブラリは必要ありません。したがって、必ず最新バージョンの Python を使用していることを確認してください。このチュートリアルでは Python 3.11 を使用します。
todo.py
ファイルを作成するには、まず必要なモジュールをインポートします。シンプルな To Do リスト アプリの場合、次のものが必要です。
それでは、両方をインポートしてみましょう。
import argparse
import os
タスクの追加、一覧表示、および削除にはコマンドライン フラグを使用することを思い出してください。各引数に短いオプションと長いオプションの両方を使用できます。私たちのアプリでは、次のものを使用しましょう。
-a
or--add
タスクを追加するには-l
or--list
すべてのタスクをリストするには-r
or--remove
インデックスを使用してタスクを削除するには
ここでは、argparse モジュールを使用して、コマンド ラインで指定された引数を解析します。定義します create_parser()
次のことを行う関数:
- を初期化します
ArgumentParser
オブジェクト (オブジェクトと呼びましょう)parser
). - タスクを追加、リスト、および削除するための引数を、
add_argument()
パーサーオブジェクトのメソッド。
引数を追加するときは、短いオプションと長いオプションの両方と、対応するヘルプ メッセージを追加します。それで、これが create_parser()
関数:
def create_parser():
parser = argparse.ArgumentParser(description="Command-line Todo List App")
parser.add_argument("-a", "--add", metavar="", help="Add a new task")
parser.add_argument("-l", "--list", action="store_true", help="List all tasks")
parser.add_argument("-r", "--remove", metavar="", help="Remove a task by index")
return parser
次に、次のタスク管理操作を実行する関数を定義する必要があります。
- タスクの追加
- すべてのタスクをリストする
- インデックスによるタスクの削除
次の機能 add_task
単純なテキスト ファイルを操作して、TO-DO リストの項目を管理します。ファイルを「追加」モードで開き、タスクをリストの最後に追加します。
def add_task(task):
with open("tasks.txt", "a") as file:
file.write(task + "n")
をどのように使用したかに注目してください。 with
ファイルを管理するためのステートメント。そうすることで、エラーが発生した場合でも操作後にファイルが確実に閉じられ、リソース リークが最小限に抑えられます。
詳細については、効率的なリソース処理のためのコンテキスト マネージャーに関するセクションを参照してください。 効率的な Python コードの作成に関するこのチュートリアル.
list_tasks
関数は、ファイルが存在するかどうかを確認して、すべてのタスクをリストします。このファイルは、最初のタスクを追加するときにのみ作成されます。まずファイルが存在するかどうかを確認し、次にタスクを読み取って出力します。現在タスクがない場合は、役立つメッセージが表示されます。 :
def list_tasks():
if os.path.exists("tasks.txt"):
with open("tasks.txt", "r") as file:
tasks = file.readlines()
for index, task in enumerate(tasks, start=1):
print(f"{index}. {task.strip()}")
else:
print("No tasks found.")
また、 remove_task
インデックスによってタスクを削除する機能。 「書き込み」モードでファイルを開くと、既存のファイルが上書きされます。そこで、インデックスに対応するタスクを削除し、更新された TO-DO リストをファイルに書き込みます。
def remove_task(index):
if os.path.exists("tasks.txt"):
with open("tasks.txt", "r") as file:
tasks = file.readlines()
with open("tasks.txt", "w") as file:
for i, task in enumerate(tasks, start=1):
if i != index:
file.write(task)
print("Task removed successfully.")
else:
print("No tasks found.")
コマンドライン引数を解析するためにパーサーをセットアップしました。また、タスクの追加、リスト、削除のタスクを実行する関数も定義しました。それで、次は何でしょうか?
おそらくあなたはそれを推測したでしょう。受け取ったコマンドライン引数に基づいて正しい関数を呼び出すだけで済みます。を定義しましょう main()
を使用してコマンドライン引数を解析する関数 ArgumentParser
ステップ 3 で作成したオブジェクト。
指定された引数に基づいて、適切なタスク管理関数を呼び出します。これは、次のような単純な if-elif-else ラダーを使用して実行できます。
def main():
parser = create_parser()
args = parser.parse_args()
if args.add:
add_task(args.add)
elif args.list:
list_tasks()
elif args.remove:
remove_task(int(args.remove))
else:
parser.print_help()
if __name__ == "__main__":
main()
コマンド ラインから TO-DO リスト アプリを実行できるようになりました。短いオプションを使用する h
または長いオプション help
使用状況に関する情報を取得するには:
$ python3 todo.py --help
usage: todo.py [-h] [-a] [-l] [-r]
Command-line Todo List App
options:
-h, --help show this help message and exit
-a , --add Add a new task
-l, --list List all tasks
-r , --remove Remove a task by index
最初はリストにタスクが存在しないため、次のように使用します。 --list
すべてのタスクをリストするには、「タスクが見つかりません。」と出力します。
$ python3 todo.py --list
No tasks found.
次に、次のように TO-DO リストに項目を追加します。
$ python3 todo.py -a "Walk 2 miles"
ここで項目をリストすると、タスクが追加されたことが確認できるはずです。
$ python3 todo.py --list
1. Walk 2 miles
最初の項目を追加したため、tasks.txt ファイルが作成されています (タスクの定義を参照してください)。 list_tasks
ステップ 4) の関数:
$ ls
tasks.txt todo.py
別のタスクをリストに追加してみましょう。
$ python3 todo.py -a "Grab evening coffee!"
そしてもう一つ:
$ python3 todo.py -a "Buy groceries"
次に、すべてのタスクのリストを取得しましょう。
$ python3 todo.py -l
1. Walk 2 miles
2. Grab evening coffee!
3. Buy groceries
次に、インデックスを使用してタスクを削除しましょう。夜のコーヒーを飲み終えたので (できればその日のコーヒーも)、次のように削除します。
$ python3 todo.py -r 2
Task removed successfully.
変更後の TO-DO リストは次のとおりです。
$ python3 todo.py --list
1. Walk 2 miles
2. Buy groceries
これで、アプリの最も単純なバージョンが完成しました。では、これをさらに進めるにはどうすればよいでしょうか?以下に試してみることができることがいくつかあります。
- 無効なコマンドライン オプションを使用するとどうなるか (たとえば、
-w
or--wrong
)?デフォルトの動作 (if-elif-else ラダーを思い出した場合) はヘルプ メッセージを出力することですが、例外も発生します。 Try-Except ブロックを使用してエラー処理を実装してみてください。 - エッジケースを含むテストケースを定義してアプリをテストします。まず、組み込みの単体テスト モジュールを使用できます。
- 各タスクの優先順位を指定するオプションを追加して、既存のバージョンを改善します。また、タスクを優先度に従って並べ替えて取得してみてください。
▶ このチュートリアルのコードは GitHub にあります.
このチュートリアルでは、シンプルなコマンドライン TO-DO リスト アプリを構築しました。そうすることで、組み込みの argparse モジュールを使用してコマンドライン引数を解析する方法を学びました。また、コマンド ライン入力を使用して、内部で単純なテキスト ファイルに対して対応する操作を実行しました。
さて、次はどこに行きましょうか?さて、Pythonライブラリのようなもの Typer コマンドライン アプリの構築が簡単になります。今後の Python チュートリアルでは、Typer を使用してこれを構築します。それまではコーディングを続けてください。
バラ プリヤ C インド出身の開発者兼テクニカル ライターです。彼女は、数学、プログラミング、データ サイエンス、コンテンツ作成が交わる場所で働くのが好きです。彼女の興味と専門分野には、DevOps、データ サイエンス、自然言語処理が含まれます。彼女は読書、執筆、コーディング、コーヒーが好きです。現在、彼女はチュートリアル、ハウツー ガイド、意見記事などを作成して、学習し、開発者コミュニティと知識を共有することに取り組んでいます。 Bala は、魅力的なリソースの概要やコーディング チュートリアルも作成しています。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- PlatoData.Network 垂直生成 Ai。 自分自身に力を与えましょう。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- プラトンESG。 カーボン、 クリーンテック、 エネルギー、 環境、 太陽、 廃棄物管理。 こちらからアクセスしてください。
- プラトンヘルス。 バイオテクノロジーと臨床試験のインテリジェンス。 こちらからアクセスしてください。
- 情報源: https://www.kdnuggets.com/build-a-command-line-app-with-python-in-7-easy-steps?utm_source=rss&utm_medium=rss&utm_campaign=build-a-command-line-app-with-python-in-7-easy-steps
- :持っている
- :は
- :どこ
- $UP
- 1
- 11
- 12
- 13
- 19
- 2%
- 4
- 7
- 8
- 9
- a
- できる
- 実際に
- 加えます
- 追加されました
- 追加
- 追加
- 後
- すべて
- 沿って
- また
- an
- および
- 別の
- どれか
- アプリ
- アプローチ
- 適切な
- アプリ
- です
- エリア
- 引数
- 引数
- AS
- At
- オーサリング
- ベース
- の基礎
- BE
- き
- 行動
- ブロック
- 両言語で
- そよ風
- ビルド
- 建物
- 内蔵
- 内蔵
- 焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。
- 購入
- by
- コール
- 呼び出し
- 缶
- 例
- チェック
- 点検
- 閉まっている
- コード
- コーディング
- コーヒー
- command
- コミュニティ
- 記入済みの
- コンセプト
- コンテンツ
- コンテンツ作成
- コンテキスト
- 正しい
- 対応する
- 作ります
- 作成した
- 作成します。
- 創造
- 現在
- カスタム
- データ
- データサイエンス
- 中
- デフォルト
- 定義します
- 定義済みの
- 定義
- 定義
- Developer
- DevOps
- ディレクトリにジョブを開始します。
- do
- ありません
- すること
- ドン
- 行われ
- 各
- 簡単に
- エッジ(Edge)
- 効率的な
- ほかに
- end
- 魅力的
- 確実に
- エラー
- エーテル(ETH)
- 夕方
- 例外
- 既存の
- 存在
- 出口
- 専門知識
- 探る
- 少数の
- File
- 完成しました
- 名
- フラグ
- フォロー中
- 次
- 発見
- から
- function
- 機能
- さらに
- 取得する
- Go
- グラブ
- 素晴らしい
- 食料品
- 推測された
- ガイド
- ハンドリング
- 起こります
- 助けます
- 役立つ
- 彼女の
- こちら
- フード
- うまくいけば
- 認定条件
- How To
- HTML
- HTTPS
- i
- if
- 実装する
- 実装
- import
- インポート
- in
- include
- index
- インド
- 情報
- 入力
- 内部
- 相互作用する
- 関心
- 交差点
- 無効
- IT
- リーディングシート
- ITS
- JPG
- KDナゲット
- キープ
- 知識
- はしご
- 言語
- リーク
- LEARN
- 学んだ
- 学習
- う
- ことができます
- ライブラリ
- ような
- 好き
- LINE
- リスト
- リスト
- リスト
- ll
- 長い
- 見て
- loops
- メイン
- make
- 管理します
- 管理
- マネージャー
- マーク
- math
- メッセージ
- 方法
- モード
- 修正されました
- モジュール
- モジュール
- 他には?
- ずっと
- ナチュラル
- 自然言語
- 自然言語処理
- 必要
- 新作
- 次の
- いいえ
- 今
- オブジェクト
- of
- 良い
- on
- ONE
- の
- 開設
- 開きます
- 業務執行統括
- 意見
- オプション
- オプション
- or
- OS
- 私たちの
- でる
- 紙素材
- path
- パス
- 実行する
- ピース
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- 印刷物
- 優先順位
- プリヤ
- 多分
- 処理
- プログラミング
- プロジェクト
- プロジェクト(実績作品)
- 提供
- Python
- R
- 読む
- リーディング
- 準備
- 受け
- 最近
- 参照する
- 削除します
- 削除済み
- 除去
- の提出が必要です
- リソースを追加する。
- return
- ラン
- s
- 言う
- 科学
- スクリプト
- セクション
- セッションに
- シェアリング
- 彼女
- ショート
- すべき
- 表示する
- 示す
- 簡単な拡張で
- 最も簡単な
- So
- 何か
- sort
- start
- ステートメント
- 手順
- ステップ
- 首尾よく
- 確か
- 構文
- T
- 取る
- 仕事
- タスク
- 技術的
- test
- 클라우드 기반 AI/ML및 고성능 컴퓨팅을 통한 디지털 트윈의 기초 – Edward Hsu, Rescale CPO 많은 엔지니어링 중심 기업에게 클라우드는 R&D디지털 전환의 첫 단계일 뿐입니다. 클라우드 자원을 활용해 엔지니어링 팀의 제약을 해결하는 단계를 넘어, 시뮬레이션 운영을 통합하고 최적화하며, 궁극적으로는 모델 기반의 협업과 의사 결정을 지원하여 신제품을 결정할 때 데이터 기반 엔지니어링을 적용하고자 합니다. Rescale은 이러한 혁신을 돕기 위해 컴퓨팅 추천 엔진, 통합 데이터 패브릭, 메타데이터 관리 등을 개발하고 있습니다. 이번 자리를 빌려 비즈니스 경쟁력 제고를 위한 디지털 트윈 및 디지털 스레드 전략 개발 방법에 대한 인사이트를 나누고자 합니다.
- それ
- それら
- その後
- そこ。
- 物事
- サードパーティ
- この
- 〜へ
- あまりに
- 試します
- チュートリアル
- チュートリアル
- 下
- まで
- 今後の
- 更新しました
- us
- 使用法
- つかいます
- 中古
- 使用されます
- バージョン
- W
- 歩く
- 仕方..
- we
- WELL
- この試験は
- いつ
- 意志
- ワーキング
- でしょう
- 書きます
- 作家
- 書き込み
- はい
- 貴社
- あなたの
- ゼファーネット