付録

Pythonスクリプトとコマンドライン実行

スクリプト実行の流れ📄script.pyターミナル$ python script.py実行結果

Pythonスクリプトとは

.py 拡張子のテキストファイルに書かれたPythonコードをスクリプトといいます。ターミナル(コマンドライン)から実行できます。

スクリプトの実行

bash
# hello.py というファイルを実行python hello.py# Pythonのバージョンを指定する場合python3 hello.py
python
# hello.pyprint("Hello, World!")print("Pythonスクリプトが実行されました!")

コマンドライン引数

sys.argv を使うと、コマンドラインから引数を受け取れます。

python
# greet.pyimport sys# sys.argv[0] はスクリプト名# sys.argv[1], [2], ... は引数if len(sys.argv) < 2:    print("使い方: python greet.py <名前>")    sys.exit(1)name = sys.argv[1]print(f"こんにちは、{name}さん!")
bash
python greet.py 太郎# こんにちは、太郎さん!python greet.py# 使い方: python greet.py <名前>

argparse モジュール

より本格的なコマンドライン引数の処理には argparse を使います。

python
# calculator.pyimport argparsedef main():    parser = argparse.ArgumentParser(description="簡単な電卓")    parser.add_argument("a", type=float, help="最初の数")    parser.add_argument("b", type=float, help="2番目の数")    parser.add_argument(        "--op", choices=["+", "-", "*", "/"],        default="+", help="演算子(デフォルト: +)"    )        args = parser.parse_args()        if args.op == "+":        result = args.a + args.b    elif args.op == "-":        result = args.a - args.b    elif args.op == "*":        result = args.a * args.b    elif args.op == "/":        result = args.a / args.b        print(f"{args.a} {args.op} {args.b} = {result}")if __name__ == "__main__":    main()
bash
python calculator.py 5 3 --op +# 5.0 + 3.0 = 8.0python calculator.py 10 4 --op *# 10.0 * 4.0 = 40.0python calculator.py --help# ヘルプメッセージが表示される

シェバン行(Linux/Mac)

Linux/Macでは、スクリプトの先頭にシェバン行を書くと、python コマンドなしで実行できます。

python
#!/usr/bin/env python3# -*- coding: utf-8 -*-"""実行可能スクリプトの例"""print("このスクリプトは直接実行できます!")
bash
# 実行権限を付与chmod +x myscript.py# 直接実行./myscript.py

標準入出力

python
# input_example.pyname = input("名前を入力してください: ")print(f"こんにちは、{name}さん!")# 数値として受け取る場合age = int(input("年齢を入力: "))print(f"{age}歳ですね。")

pipでのパッケージ管理

bash
# パッケージのインストールpip install requests# 特定バージョンを指定pip install numpy==1.24.0# インストール済みパッケージの確認pip list# requirements.txt に書き出すpip freeze > requirements.txt# requirements.txt からインストールpip install -r requirements.txt

練習: スクリプトを作る

基礎

コマンドライン引数でファイル名を受け取り、そのファイルの行数・単語数・文字数を表示するスクリプト wc.py を作成してください。