5.2Pythonでのファイル操作 ファイルの書き込み

Pythonでファイルの書き込みを行うには、標準ライブラリの「open」関数を使用します。open関数は、第一引数にファイルパス、第二引数に「’w’」を指定することで、指定したファイルを書き込みモードで開きます。

書き込みたい内容を、open関数で取得したファイルオブジェクトの「write」メソッドに渡します。

with open('example.txt', 'w') as f:
    f.write('Hello, World!')

上記の例では、「example.txt」というファイルを書き込みモードで開き、「Hello, World!」という文字列を書き込んでいます。

また、上記の例ではwith文を使用していますが、これにより、with文のブロックから抜けた時に自動的にファイルが閉じられるため、明示的に「f.close()」を呼ぶ必要がない。

使用例

# 新規にファイルを作成して書き込みを行う場合
with open('example.txt', 'w') as file:
    file.write('こんにちは、世界!')

# 既存のファイルに追記を行う場合
with open('example.txt', 'a') as file:
    file.write('\nこんにちは、Python!')

上記の例では、まず open 関数を使用して、’example.txt’ という名前の新しいファイルを作成します。第二引数に ‘w’ を指定しているため、これは書き込みモードで開かれます。 次に、with open ステートメントを使用して、開いたファイルを file という名前の変数に割り当てます。 最後に、file.write 関数を使用して、文字列 ‘こんにちは、世界!’を書き込みます。

2番目の例は既存のファイルに追記を行っています。’a’ を指定することで追記モードで開かれ、file.write関数を使用して文字列を追加します。

問題

以下のデータを使用して、”test.txt”という名前のファイルに書き込んでください。

John, 25, Male
Jane, 30, Female
Bob, 35, Male
Sara, 28, Female

解答

with open("test.txt", "w") as f:
    f.write("John, 25, Male\nJane, 30, Female\nBob, 35, Male\nSara, 28, Female")

上記のコードで、”test.txt”という名前のファイルが作成され、データが書き込まれます。

応用例

  1. CSVファイルの読み込み・書き込み: CSVファイルは、カンマで区切られたテキストファイルで、Excelなどのスプレッドシートソフトでも開くことができます。Pythonでは、csvモジュールを使用することで、CSVファイルを読み込んだり、書き込んだりすることができます。
  2. JSONファイルの読み込み・書き込み: JSONは、JavaScript Object Notationの略で、Web APIなどでよく使われるデータフォーマットです。Pythonでは、jsonモジュールを使用することで、JSONファイルを読み込んだり、書き込んだりすることができます。
  3. 画像ファイルの読み込み・書き込み: Pythonでは、Pillowというライブラリを使用することで、画像ファイルを読み込んだり、書き込んだりすることができます。例えば、画像ファイルを読み込んで、グレースケールに変換したり、リサイズしたりすることができます。
  4. PDFファイルの操作: Pythonでは、PyPDF2というライブラリを使用することで、PDFファイルを読み込んだり、編集したり、新しいPDFファイルを作成したりすることができます。例えば、PDFファイルからテキストを抽出したり、PDFファイルに新しいページを追加したりすることができます。

コードの例

例えば、CSVファイルを読み込んで、特定の列だけを抽出して別のCSVファイルに書き出す処理をする場合、次のようなコードになるかと思います。

import csv

# CSVファイルの読み込み
with open('input.csv', 'r') as f:
    reader = csv.reader(f)
    data = [row for row in reader]

# 出力用のリスト
output_data = []
# 2列目だけ抽出して出力用リストに格納
for row in data:
    output_data.append([row[1]])

# 出力用のCSVファイルの書き込み
with open('output.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerows(output_data)

このコードでは、まずinput.csvというファイルを読み込んで、CSVのreaderオブジェクトを使って、各行をリストのリストとして取得します。その後、出力用のリストを用意し、各行の2列目だけを抽出して出力用リストに格納します。最後に、output.csvというファイルを開き、csv.writerオブジェクトを使って出力用リストを書き込みます。

コメント

  1. […] ファイルの書き込み […]

タイトルとURLをコピーしました