Python でファイルにリストを書き込む

Syed Moiz Haider 2023年10月10日
  1. ループを使って Python でファイルにリストを書く
  2. Python で Pickle モジュールを使用してファイルにリストを書き込む
  3. join() メソッドを使用してリストをファイルに書き込む
Python でファイルにリストを書き込む

このチュートリアルでは、Python でファイルにリストを書き込む方法を説明します。リストをファイルに書き込む方法は複数ありますので、チュートリアルでは様々なコード例を挙げて説明しています。

ループを使って Python でファイルにリストを書く

リストをファイルに書き込むためにループを使用することは非常に些細なことであり、最もよく使われる方法です。ループを用いてリストの項目を反復処理し、write() メソッドを用いてリストの項目をファイルに書き込む。

ファイルを開くには open() メソッドを用います。ファイルを開くモードは write の略である w とします。

例のコードを以下に示します。

listitems = ["ab", "cd", "2", "6"]

with open("abc.txt", "w") as temp_file:
    for item in listitems:
        temp_file.write("%s\n" % item)
file = open("abc.txt", "r")
print(file.read())

出力:

{'6','2', 'ab', 'cd'}

Python 2.x の場合は、以下のような方法もあります。

listitems = ["ab", "cd", "2", "6"]

with open("xyz.txt", "w") as temp_file:
    for item in listitems:
        print >> temp_file, item

どちらのコードも、Python でファイルにリストを書き込む結果になります。

Python で Pickle モジュールを使用してファイルにリストを書き込む

Python の Pickle モジュールは、Python のオブジェクト構造をシリアライズしたり、デシリアライズしたりするために使われます。同じ Python ファイルの中で後で使うためにリストをシリアライズしたい場合、pickle を使用することができます。pickle モジュールはバイナリプロトコルを実装しているので、ファイルはバイナリ書き込みモード - wb で開かなければならません。

pickle.dump() メソッドはファイルにリストを書き込むのに使われます。これはファイルのリストと参照をパラメータとして受け取ります。

このアプローチのコード例を以下に示します。

import pickle

listitems = ["ab", "cd", "2", "6"]
with open("outputfile", "wb") as temp:
    pickle.dump(listitems, temp)
with open("outfile", "rb") as temp:
    items = pickle.load(temp)

print(items)

出力:

{'ab','cd', '6', '2'}

join() メソッドを使用してリストをファイルに書き込む

Python でリストをファイルに書き込むもう一つの簡単な方法は join() メソッドを使用することです。これはリストの項目を入力として受け取ります。

このメソッドを使用するコードの例を以下に示します。

items = ["a", "b", "c", "d"]

with open("outputfile", "w") as opfile:
    opfile.write("\n".join(items))

JSON モジュールを使ってファイルにリストを書き込む

Python では pickle モジュールの使用は非常に特殊です。JSON はさまざまなプログラムをより効率的でわかりやすくします。JSON モジュールは混合変数型をファイルに書き込むために使われます。

これは dump() メソッドを用いて、要素のリストとファイルへの参照を入力として受け取ります。

コードの例を以下に示します。

import json

itemlist = [21, "Tokyo", 3.4]
with open("opfile.txt", "w") as temp_op:
    json.dump(itemlist, temp_op)

print(templist)

出力:

[21, "Tokyo", 3.4]
Syed Moiz Haider avatar Syed Moiz Haider avatar

Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.

LinkedIn

関連記事 - Python List

関連記事 - Python File