【Python】questionary | 対話型CLIツールを簡単に作る方法 & コード例
Pythonでコマンドラインツール(CLI)を作る際、ユーザーと対話するための入力方法に悩んだことはありませんか?
そんなときに便利なのが「questionary」というライブラリです。
本記事では、questionaryのインストールから基本的な使い方、そして7種類のプロンプトを使ったシンプルで実用的なコード例を紹介します。
questionaryとは?
- Python製の対話型CLIツール作成ライブラリ
- 選択式メニューや入力フォームなどが簡単に実装可能
- 見た目が美しく、カスタマイズ性も高い
インストール方法
1
| pip install questionary
|
基本的なプロンプトの種類と使い方
1. テキスト入力(text)
1
2
3
| import questionary
answer = questionary.text("あなたの名前は?").ask()
print(f"こんにちは、{answer}さん!")
|
2. 選択式メニュー(select)
1
2
3
4
5
| choice = questionary.select(
"好きな言語を選んでください:",
choices=["Python", "JavaScript", "Go", "Rust"]
).ask()
print(f"あなたが選んだ言語は: {choice}")
|
3. 複数選択(checkbox)
1
2
3
4
5
| features = questionary.checkbox(
"利用したい機能を選んでください:",
choices=["ログ保存", "メール通知", "自動バックアップ"]
).ask()
print(f"選択した機能: {', '.join(features)}")
|
4. 確認ダイアログ(confirm)
1
2
3
4
5
| confirm = questionary.confirm("本当に削除してもよろしいですか?").ask()
if confirm:
print("削除しました。")
else:
print("操作をキャンセルしました。")
|
5. パス入力(password)
1
2
| password = questionary.password("パスワードを入力してください:").ask()
print("パスワードを受け付けました。")
|
6. 自動補完付き入力(autocomplete)
1
2
3
4
5
| lang = questionary.autocomplete(
"プログラミング言語を入力してください:",
choices=["Python", "JavaScript", "Java", "C#", "Go", "Rust"]
).ask()
print(f"あなたが選んだのは: {lang}")
|
7. 整数選択(rawselect)
1
2
3
4
5
| number = questionary.rawselect(
"番号を選んでください:",
choices=["1", "2", "3", "4"]
).ask()
print(f"選んだ番号: {number}")
|
実用例:設定ウィザードCLIツール
以下は、様々なプロンプトを活用した「設定ウィザード形式」の簡単なCLIツールの例です。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| import questionary
def setup_wizard():
print("=== 設定ウィザードを開始します ===")
# 1. ユーザー名を入力
username = questionary.text("ユーザー名を入力してください:").ask()
# 2. パスワードを非表示で入力
password = questionary.password("パスワードを入力してください:").ask()
# 3. 使用する機能を選択(単一選択)
feature = questionary.select(
"使用するメイン機能を選んでください:",
choices=[
"ファイル管理",
"データ分析",
"Webスクレイピング"
]).ask()
# 4. 複数機能を選択(複数選択)
addons = questionary.checkbox(
"追加で使いたい機能を選んでください:",
choices=[
"ログ保存",
"メール通知",
"ダークモード"
]).ask()
# 5. 確認
confirm = questionary.confirm("この設定で進めてもよろしいですか?").ask()
if confirm:
print("\n=== 設定内容 ===")
print(f"ユーザー名: {username}")
print(f"メイン機能: {feature}")
print(f"追加機能: {', '.join(addons) if addons else 'なし'}")
print("設定を保存しました。")
else:
print("設定をキャンセルしました。")
if __name__ == "__main__":
setup_wizard()
|
まとめ
- questionaryは、Pythonで簡単に対話式CLIツールを作れる強力なライブラリ。
- 多彩なプロンプトを活用することで、ユーザーと直感的にやり取り可能。
- シンプルなコードで、実用的なツール開発が可能!
ぜひ、あなたのPythonプロジェクトにquestionaryを取り入れて、より魅力的なCLIツールを作ってみてください!
参考リンク
questionary