【Python入門】11章のまとめ

 11章では、プログラムと外部リソースとの連携を実現するためのさまざまなファイル操作技術と、柔軟なプログラム実行のためのコマンドライン引数の取得方法について学びました。
 ここでは、テキストファイル、CSVファイル、JSONファイル、画像ファイルなど、異なるデータ形式の入出力やファイルシステム上での操作方法を、具体的な例と以下の表を用いて整理します。次の12章では、これらの技術を活かしてRPA―仕事の自動化に挑戦していきます。ここでの理解が、今後の実践に大いに役立つでしょう。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

1.テキストファイルの読み書き

テキストファイルは、プログラムがデータを保存・取得する基本的な手段です。

操作内容説明
ファイルのオープンopen() 関数を用いて、読み込み("r")または書き込み("w")モードでファイルを開く。
ファイルの読み込みread()readline(), readlines() を利用してファイルの内容を取得する。
ファイルの書き込みwrite()writelines() を用いてテキストデータを書き込む。

サンプルプログラム

# テキストファイルへの書き込み
with open("example.txt", "w", encoding="utf-8") as f:
    f.write("こんにちは、Pythonの世界!")

# テキストファイルの読み込み
with open("example.txt", "r", encoding="utf-8") as f:
    content = f.read()
    print(content)

実行結果

こんにちは、Pythonの世界!

2.CSVファイルの読み書き

CSVファイルは、データを表形式で管理する際に有用です。

操作内容説明
CSVの読み込みcsv.reader を使用して、CSVファイルから行ごとにデータを取得する。
CSVの書き込みcsv.writer を用い、リスト形式のデータをCSVファイルに書き込む。

サンプルプログラム

import csv

# CSVファイルへの書き込み
with open("data.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerow(["名前", "年齢"])
    writer.writerow(["Alice", 30])

# CSVファイルの読み込み
with open("data.csv", "r", encoding="utf-8") as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

実行結果

['名前', '年齢']
['Alice', '30']

3.JSONファイルの出力と入力

JSON形式は、データ交換や設定情報の保存に適しており、Pythonの辞書型と相性が良いです。

操作内容説明
JSONファイルへの出力json.dump() を利用して、PythonオブジェクトをJSON形式でファイルに保存する。
JSONファイルからの入力json.load() を用い、JSONファイルの内容をPythonオブジェクトとして読み込む。

サンプルプログラム

import json

data = {"name": "Bob", "age": 25}

# JSONファイルへの出力
with open("data.json", "w", encoding="utf-8") as f:
    json.dump(data, f, ensure_ascii=False, indent=4)

# JSONファイルからの入力
with open("data.json", "r", encoding="utf-8") as f:
    loaded_data = json.load(f)
    print(loaded_data)

実行結果

{'name': 'Bob', 'age': 25}

4.画像ファイルの入力(Pillowライブラリ)

画像ファイルの読み込みには、Pillow(PIL)ライブラリが用いられ、画像の表示や加工が可能です。

操作内容説明
画像ファイルの読み込みImage.open() を利用して画像を読み込み、操作対象のオブジェクトを生成する。

サンプルプログラム

from PIL import Image
from IPython.display import display

# 画像を読み込む
img = Image.open("sample_image.jpg")

# 読み込んだ画像をNotebook上に表示
display(img)

実行結果

5.ファイルに関連する操作

プログラムはファイルシステム上での管理操作も行えます。

操作内容説明
ファイルのコピーshutil.copy() を使用してファイルを別の場所へコピーする。
ファイルの名前変更os.rename() を用いてファイルの名前を変更する。
ファイルの削除os.remove() を利用して不要なファイルを削除する。

サンプルプログラム

import shutil
import os

# ファイルのコピー
shutil.copy("example.txt", "example_copy.txt")

# ファイルの名前変更
os.rename("example_copy.txt", "renamed_example.txt")

# ファイルの削除
os.remove("renamed_example.txt")

6.コマンドライン引数の取得

 コマンドライン引数を利用すると、プログラム実行時に外部からパラメータを渡し、柔軟な動作を実現できます。

操作内容説明
コマンドライン引数の取得sys.argv を利用して、スクリプトに渡された引数のリストを取得する。

サンプルプログラム

import sys

# コマンドライン引数の表示
for index, arg in enumerate(sys.argv):
    print(f"引数{index}: {arg}")

まとめ

 11章では、テキストファイル、CSV、JSON、画像ファイルの読み書きといったファイル操作や、ファイルのコピー・名前変更・削除などの管理操作、さらにコマンドライン引数の取得方法を学びました。これらの技術は、プログラムが外部データと連携し、柔軟かつ自動化された処理を実現するための基盤となります。次の12章では、RPA―仕事の自動化に向けた実践的なアプローチを学び、これまでの知識をさらに応用していきましょう。