Pythonコマンド実行の完全ガイド!初心者が30分で理解できる基本から実践まで

python icon
Python

こんにちは、とまだです。

Pythonでコマンドを実行する方法がわからなくて困っていませんか?

実はコマンドライン操作って、プログラミング初心者にとって最初の大きな壁なんです。 黒い画面を見ただけで「難しそう...」と感じる気持ち、よくわかります。

今回は、Pythonのコマンド実行について、電子レンジを使うような感覚で理解できるように解説していきます。

この記事で身につくスキル

  • Pythonをコマンドラインから実行する基本的な方法
  • スクリプトファイルとインタラクティブモードの使い分け
  • 引数を使った柔軟なプログラムの作り方
  • 外部コマンドを呼び出す実践的なテクニック
  • よくあるエラーとその解決方法

Pythonコマンド実行って何?日常生活で理解する

コマンドラインでPythonを実行するって、実は家電のリモコン操作に似ています。

テレビのリモコンを想像してみてください。

  • 電源ボタンを押すと、テレビが起動
  • チャンネルボタンで番組を切り替え
  • 音量ボタンで音の大きさを調整

Pythonのコマンド実行も同じです。

python script.py

このコマンドは、「Pythonさん、script.pyというファイルを実行してください」という指示なんです。

なぜコマンドライン実行が必要なの?

「普通にダブルクリックで実行できないの?」

そう思いますよね。

実は、コマンドライン実行にはこんなメリットがあります。

自動化できる 毎朝同じ時間に実行したり、大量のファイルを一気に処理したり。 手作業だと1時間かかる作業も、コマンドなら数秒で終わります。

引数を渡せる 処理対象のファイル名や設定値を、実行時に指定できます。 同じプログラムで、いろんなパターンの処理ができるんです。

他のツールと連携できる Pythonの処理結果を別のプログラムに渡したり、複数のプログラムを組み合わせたり。 レゴブロックのように、自由に組み立てられます。

2つの実行方法を使い分けよう

Pythonには主に2つの実行方法があります。

1. スクリプトファイルで実行(基本はこれ)

ファイルにコードを書いて保存し、それを実行する方法です。

以下のコードを hello.py として保存してみましょう。

# hello.py
print("Pythonの世界へようこそ!")
print("今日から一緒に学んでいきましょう")

実行方法はとってもシンプル。

python hello.py

これで「Pythonの世界へようこそ!」と表示されます。

料理のレシピみたいなものですね。 レシピ(スクリプト)を作っておけば、何度でも同じ料理(処理)が作れます。

2. インタラクティブモード(ちょっと試したい時)

コマンドラインで python とだけ入力すると、対話モードが起動します。

python
>>> print("こんにちは")
こんにちは
>>> 10 + 20
30
>>> exit()

電卓のような使い方ですね。 ちょっとした計算や、コードの動作確認に便利です。

ただし、長いプログラムには向きません。 本格的な開発では、スクリプトファイルを使いましょう。

コマンドライン引数で柔軟性アップ

プログラムに「今日は何を処理する?」と聞かれたら便利ですよね。

それを実現するのがコマンドライン引数です。

基本的な引数の受け取り方

以下のコードを greet.py として保存します。

# greet.py
import sys

# 引数を受け取る
name = sys.argv[1]
print(f"こんにちは、{name}さん!")

実行する時に名前を指定します。

python greet.py 太郎

すると「こんにちは、太郎さん!」と表示されます。

より実践的な例:ファイル処理

CSVファイルを処理するプログラムを考えてみましょう。

# process_csv.py
import sys
import csv

# ファイル名を引数から取得
input_file = sys.argv[1]
output_file = sys.argv[2]

# CSVファイルを読み込んで処理
with open(input_file, 'r', encoding='utf-8') as f_in:
    reader = csv.reader(f_in)

    with open(output_file, 'w', encoding='utf-8', newline='') as f_out:
        writer = csv.writer(f_out)

        for row in reader:
            # 各行を大文字に変換(例)
            processed_row = [cell.upper() for cell in row]
            writer.writerow(processed_row)

print(f"処理完了!{output_file}に保存しました")

実行方法はこうなります。

python process_csv.py input.csv output.csv

**料理番組の「材料はこちら」**みたいな感じですね。 必要な材料(ファイル名)を指定すれば、同じレシピで違う料理が作れます。

Pythonから外部コマンドを実行する

Pythonから他のプログラムを呼び出すこともできます。

リモコンでエアコンもテレビも操作するようなイメージです。

subprocessモジュールの基本

# run_command.py
import subprocess

# lsコマンド(ファイル一覧表示)を実行
result = subprocess.run(['ls', '-la'], capture_output=True, text=True)

print("実行結果:")
print(result.stdout)

Windowsの場合は dir コマンドを使います。

# Windowsの場合
result = subprocess.run(['dir'], shell=True, capture_output=True, text=True)

実践例:画像の一括変換

ImageMagickというツールと組み合わせた例を見てみましょう。

# convert_images.py
import subprocess
import os
from pathlib import Path

# 画像フォルダ内のすべてのPNGファイルを取得
image_folder = Path("./images")
png_files = list(image_folder.glob("*.png"))

for png_file in png_files:
    # JPGファイル名を作成
    jpg_file = png_file.with_suffix(".jpg")

    # ImageMagickのconvertコマンドを実行
    cmd = ['convert', str(png_file), '-quality', '85', str(jpg_file)]
    subprocess.run(cmd)

    print(f"変換完了: {png_file.name}{jpg_file.name}")

print(f"\n全{len(png_files)}ファイルの変換が完了しました!")

これで、フォルダ内のPNG画像を一気にJPGに変換できます。

手作業だと30分かかる作業も、わずか数秒で終わります。

よくあるエラーと解決方法

1. "python: command not found" エラー

python script.py
# python: command not found

原因: Pythonがインストールされていない、またはPATHが通っていない

解決方法:

  • python3 コマンドを試してみる
  • Windowsなら py コマンドを使う
  • Pythonを再インストールして、PATHを通す

2. "No such file or directory" エラー

python script.py
# python: can't open file 'script.py': [Errno 2] No such file or directory

原因: ファイルが存在しない、またはパスが間違っている

解決方法:

# 現在のディレクトリを確認
pwd  # MacOS/Linux
cd   # Windows

# ファイルの存在を確認
ls   # MacOS/Linux
dir  # Windows

# 正しいディレクトリに移動
cd /path/to/your/script

3. "IndexError: list index out of range" (引数エラー)

name = sys.argv[1]  # IndexError

原因: 必要な引数が指定されていない

解決方法:

import sys

# 引数の数をチェック
if len(sys.argv) < 2:
    print("使い方: python script.py <名前>")
    sys.exit(1)

name = sys.argv[1]

実践的な活用例

定期実行スクリプト

毎日のレポート作成を自動化する例です。

# daily_report.py
import datetime
import csv
import subprocess

# 今日の日付を取得
today = datetime.date.today()
report_file = f"report_{today}.csv"

# データを集計(例)
data = [
    ["日付", "売上", "顧客数"],
    [today, 150000, 45],
]

# CSVファイルに保存
with open(report_file, 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerows(data)

# メール送信(例)
# subprocess.run(['mail', '-s', f'日次レポート {today}', 'boss@example.com'],
#                 stdin=open(report_file))

print(f"レポート作成完了: {report_file}")

cronやタスクスケジューラーと組み合わせれば、毎朝自動で実行できます。

バックアップスクリプト

重要なファイルを定期的にバックアップする例です。

# backup.py
import shutil
import datetime
from pathlib import Path

# バックアップ元とバックアップ先
source_dir = Path("./important_files")
backup_base = Path("./backups")

# 日付付きのバックアップフォルダを作成
today = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
backup_dir = backup_base / f"backup_{today}"

# バックアップ実行
shutil.copytree(source_dir, backup_dir)

print(f"バックアップ完了: {backup_dir}")

# 古いバックアップを削除(30日以上前)
for old_backup in backup_base.glob("backup_*"):
    # フォルダの作成日時を確認して削除処理
    pass  # 実装は省略

まとめ

Pythonのコマンド実行について、基本から実践まで解説してきました。

最初は黒い画面が怖く感じるかもしれません。 でも、基本的な使い方を覚えてしまえば、家電のリモコンと同じくらい簡単に扱えるようになります。

まずは簡単な hello.py から始めてみてください。 少しずつ引数を使ったり、外部コマンドを呼び出したりして、できることを増やしていきましょう。

コマンドライン実行をマスターすれば、面倒な作業を自動化できるようになります。 その時間を使って、もっとクリエイティブなことに挑戦してみてください!

共有:

著者について

とまだ

とまだ

フルスタックエンジニア

Learning Next の創設者。Ruby on Rails と React を中心に、プログラミング教育に情熱を注いでいます。初心者が楽しく学べる環境作りを目指しています。

著者の詳細を見る →