[Python] 2次元リストをファイルとして出力する方法
Pythonでは、2次元リストをファイルに出力する方法として、主にCSV形式での保存が一般的です。
Pythonの標準ライブラリであるcsvモジュールを使用することで、簡単に2次元リストをCSVファイルとして書き出すことができます。
まず、csv.writerを用いてファイルに書き込み、各行をwriterowメソッドで追加します。
また、pandasライブラリを使用することで、より柔軟にデータを操作し、CSVやExcel形式で出力することも可能です。
これにより、データの保存や他のアプリケーションとの連携が容易になります。
CSVファイルへの出力
CSVモジュールのインポート
PythonでCSVファイルを扱うためには、標準ライブラリのcsvモジュールをインポートします。
このモジュールを使用することで、CSVファイルの読み書きが簡単に行えます。
以下のようにインポートします。
import csv2次元リストをCSVファイルに書き込む方法
2次元リストをCSVファイルに書き込むには、csv.writerを使用します。
以下のサンプルコードでは、2次元リストをCSVファイルに書き込む方法を示しています。
import csv
data = [
    ["Name", "Age", "City"],
    ["Alice", 30, "Tokyo"],
    ["Bob", 25, "Osaka"],
    ["Charlie", 35, "Nagoya"]
]
with open('output.csv', mode='w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)実行後、output.csvファイルには以下の内容が書き込まれます。
Name,Age,City
Alice,30,Tokyo
Bob,25,Osaka
Charlie,35,NagoyaCSVファイルの読み込みと確認
書き込んだCSVファイルを読み込むには、csv.readerを使用します。
以下のサンプルコードでは、先ほど作成したoutput.csvファイルを読み込み、その内容を表示します。
import csv
with open('output.csv', mode='r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)実行すると、以下のように出力されます。
['Name', 'Age', 'City']
['Alice', '30', 'Tokyo']
['Bob', '25', 'Osaka']
['Charlie', '35', 'Nagoya']このように、CSVファイルへの書き込みと読み込みは非常に簡単に行えます。
テキストファイルへの出力
テキストファイルの基本操作
Pythonでは、テキストファイルの操作は非常にシンプルです。
ファイルを開くにはopen()関数を使用し、モードを指定することで読み込みや書き込みができます。
主なモードは以下の通りです。
| モード | 説明 | 
|---|---|
'r' | 読み込みモード | 
'w' | 書き込みモード(ファイルが存在する場合は上書き) | 
'a' | 追記モード(ファイルが存在する場合は末尾に追加) | 
'r+' | 読み書きモード(ファイルが存在しない場合はエラー) | 
ファイルを操作した後は、必ずclose()メソッドを使ってファイルを閉じることが重要です。
with文を使うと、自動的にファイルが閉じられます。
2次元リストをテキストファイルに書き込む方法
2次元リストをテキストファイルに書き込むには、write()メソッドを使用します。
以下のサンプルコードでは、2次元リストをテキストファイルに書き込む方法を示しています。
data = [
    ["Name", "Age", "City"],
    ["Alice", 30, "Tokyo"],
    ["Bob", 25, "Osaka"],
    ["Charlie", 35, "Nagoya"]
]
with open('output.txt', mode='w') as file:
    for row in data:
        file.write('\t'.join(map(str, row)) + '\n')このコードでは、各要素をタブで区切り、行ごとに改行を追加しています。
実行後、output.txtファイルには以下の内容が書き込まれます。
Name	Age	City
Alice	30	Tokyo
Bob	25	Osaka
Charlie	35	Nagoyaテキストファイルの読み込みと確認
書き込んだテキストファイルを読み込むには、read()メソッドやreadlines()メソッドを使用します。
以下のサンプルコードでは、先ほど作成したoutput.txtファイルを読み込み、その内容を表示します。
with open('output.txt', mode='r') as file:
    content = file.readlines()
    for line in content:
        print(line.strip())実行すると、以下のように出力されます。
Name	Age	City
Alice	30	Tokyo
Bob	25	Osaka
Charlie	35	Nagoyaこのように、テキストファイルへの書き込みと読み込みは簡単に行え、データの保存や確認が容易になります。
JSONファイルへの出力
JSONモジュールのインポート
PythonでJSONファイルを扱うためには、標準ライブラリのjsonモジュールをインポートします。
このモジュールを使用することで、Pythonのデータ構造をJSON形式に変換したり、JSON形式のデータをPythonのデータ構造に変換したりすることができます。
以下のようにインポートします。
import json2次元リストをJSONファイルに書き込む方法
2次元リストをJSONファイルに書き込むには、json.dump()を使用します。
以下のサンプルコードでは、2次元リストをJSONファイルに書き込む方法を示しています。
import json
data = [
    ["Name", "Age", "City"],
    ["Alice", 30, "Tokyo"],
    ["Bob", 25, "Osaka"],
    ["Charlie", 35, "Nagoya"]
]
with open('output.json', mode='w') as file:
    json.dump(data, file)このコードを実行すると、output.jsonファイルには以下の内容が書き込まれます。
[
    ["Name", "Age", "City"],
    ["Alice", 30, "Tokyo"],
    ["Bob", 25, "Osaka"],
    ["Charlie", 35, "Nagoya"]
]JSONファイルの読み込みと確認
書き込んだJSONファイルを読み込むには、json.load()を使用します。
以下のサンプルコードでは、先ほど作成したoutput.jsonファイルを読み込み、その内容を表示します。
import json
with open('output.json', mode='r') as file:
    data = json.load(file)
    for row in data:
        print(row)実行すると、以下のように出力されます。
['Name', 'Age', 'City']
['Alice', 30, 'Tokyo']
['Bob', 25, 'Osaka']
['Charlie', 35, 'Nagoya']このように、JSONファイルへの書き込みと読み込みは簡単に行え、データの保存や他のプログラムとの連携がスムーズに行えます。
JSON形式は、特にWebアプリケーションでのデータ交換に広く利用されています。
応用例
2次元リストをExcelファイルに出力する方法
PythonでExcelファイルを扱うには、openpyxlやpandasなどのライブラリを使用します。
以下のサンプルコードでは、pandasを使って2次元リストをExcelファイルに書き込む方法を示しています。
import pandas as pd
data = [
    ["Name", "Age", "City"],
    ["Alice", 30, "Tokyo"],
    ["Bob", 25, "Osaka"],
    ["Charlie", 35, "Nagoya"]
]
df = pd.DataFrame(data[1:], columns=data[0])
df.to_excel('output.xlsx', index=False)このコードを実行すると、output.xlsxというExcelファイルが作成され、2次元リストのデータが書き込まれます。
2次元リストをHTMLテーブルとして出力する方法
2次元リストをHTMLテーブルとして出力するには、htmlモジュールを使用してHTML形式の文字列を生成します。
以下のサンプルコードでは、2次元リストをHTMLテーブルに変換する方法を示しています。
data = [
    ["Name", "Age", "City"],
    ["Alice", 30, "Tokyo"],
    ["Bob", 25, "Osaka"],
    ["Charlie", 35, "Nagoya"]
]
html = '<table>\n'
for row in data:
    html += '  <tr>\n'
    for item in row:
        html += f'    <td>{item}</td>\n'
    html += '  </tr>\n'
html += '</table>'
with open('output.html', mode='w') as file:
    file.write(html)このコードを実行すると、output.htmlというHTMLファイルが作成され、2次元リストのデータがHTMLテーブルとして書き込まれます。
2次元リストをSQLiteデータベースに保存する方法
SQLiteデータベースに2次元リストを保存するには、sqlite3モジュールを使用します。
以下のサンプルコードでは、2次元リストをSQLiteデータベースに保存する方法を示しています。
import sqlite3
data = [
    ["Name", "Age", "City"],
    ["Alice", 30, "Tokyo"],
    ["Bob", 25, "Osaka"],
    ["Charlie", 35, "Nagoya"]
]
# データベースに接続(なければ作成)
conn = sqlite3.connect('output.db')
cursor = conn.cursor()
# テーブルの作成
cursor.execute('CREATE TABLE IF NOT EXISTS people (Name TEXT, Age INTEGER, City TEXT)')
# データの挿入
cursor.executemany('INSERT INTO people VALUES (?, ?, ?)', data[1:])
# コミットして接続を閉じる
conn.commit()
conn.close()このコードを実行すると、output.dbというSQLiteデータベースが作成され、2次元リストのデータがpeopleテーブルに保存されます。
SQLiteは軽量で使いやすいため、小規模なデータベースアプリケーションに適しています。
まとめ
この記事では、Pythonを使用して2次元リストをさまざまなファイル形式に出力する方法を解説しました。
CSV、テキスト、JSON、Excel、HTML、SQLiteなど、さまざまな形式での出力方法を学ぶことで、データの保存や共有が容易になります。
ぜひ、これらの技術を活用して、あなたのプロジェクトに役立ててください。