Pythonスクリプトとは
.py 拡張子のテキストファイルに書かれたPythonコードをスクリプトといいます。ターミナル(コマンドライン)から実行できます。
スクリプトの実行
bash
# hello.py というファイルを実行python hello.py# Pythonのバージョンを指定する場合python3 hello.pypython
# 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 を作成してください。