Python でテキストファイルに配列を書き込む

Isaac Tony 2023年1月30日
  1. Python で open() および close() 関数を使用してテキストファイルに配列を書き込む
  2. Python のコンテキストマネージャーを使用してテキストファイルに配列を書き込む
Python でテキストファイルに配列を書き込む

ファイルの読み取りと書き込みは、多くのユーザーが使用するプログラムを構築する上で重要な側面です。Python は、リソース処理に使用できるさまざまなメソッドを提供します。これらの方法は、ファイルの形式と実行される操作によって若干異なる場合があります。

ボタンをクリックしてファイルを作成する従来の方法に加えて、open() 関数などの組み込み関数を使用してファイルを作成することもできます。open() 関数は、ファイルが存在しない場合にのみファイルを作成することに注意してください。それ以外の場合は、本質的にファイルを開くために使用されます。

Python で open() および close() 関数を使用してテキストファイルに配列を書き込む

open() 関数は他の関数と組み合わせて隔離に使用されないため、ファイルの書き込み、変更、上書きなど、さらに多くのファイル操作を実行できます。これらの関数には、write()close() 関数が含まれます。これらの関数を使用して、NumPy を使用して配列を作成し、以下のプログラムに示すように、書き込み関数を使用してテキストファイルに書き込みます。

import numpy as np

sample_list = [23, 22, 24, 25]
new_array = np.array(sample_list)

# Displaying the array

file = open("sample.txt", "w+")

# Saving the array in a text file
content = str(new_array)
file.write(content)
file.close()

# Displaying the contents of the text file
file = open("sample.txt", "r")
content = file.read()

print("Array contents in sample.txt: ", content)
file.close()

出力:

Array contents in text_sample.txt:  [23 22 24 25]

上記の例では、書き込みモードで open() 関数を使用して、sample.txt という名前のテキストファイルを作成しました。次に、書き込み関数を使用してその内容をテキストファイルに書き込む前に、配列を文字列形式に変換します。open() 関数を使用して、テキストファイルの内容を読み取りモードで開きました。テキストファイルの内容は端末に表示され、テキストファイルを物理的に開いて表示することもできます。

同様に、以下に示すように、多次元配列を作成してテキストファイルに保存することもできます。

import numpy as np

sample_list = [[23, 22, 24, 25], [13, 14, 15, 19]]
new_array = np.array(sample_list)

# Displaying the array

file = open("sample.txt", "w+")

# Saving the array in a text file
content = str(new_array)
file.write(content)
file.close()

# Displaying the contents of the text file
file = open("sample.txt", "r")
content = file.read()

print("Array contents in sample.txt: ", content)
file.close()

出力:

Array contents in sample.txt:  [[23 22 24 25]
[13 14 15 19]]

Python のコンテキストマネージャーを使用してテキストファイルに配列を書き込む

または、コンテキストマネージャーを使用して配列をテキストファイルに書き込むこともできます。close() 関数を使用してファイルを開いたらファイルを閉じる必要がある open() 関数とは異なり、コンテンツマネージャーでは、必要なときにファイルを正確に開いたり閉じたりできます。Python では、open() および close() 関数を使用する代わりに、リソースを管理する際にコンテキストマネージャーを使用することをお勧めします。コンテキストマネージャは、以下に示す with キーワードを使用して実装できます。

import numpy as np

new_list = [23, 25, 27, 29, 30]
new_array = np.array(new_list)
print(new_array)

with open("sample.txt", "w+") as f:
    data = f.read()
    f.write(str(new_array))

出力:

[23 25 27 29 30]

上記の例では、コンテキストマネージャーがテキストファイル sample.txt を開きますが、ファイルが存在しないため、コンテキストマネージャーが作成します。コンテキストマネージャーのスコープ内で、配列を文字列に変換するときにテキストファイルに書き込みました。インデントをオプトアウトすると、コンテキストマネージャーはファイルを自動的に閉じます。同様に、以下に示すように、コンテキストマネージャーを使用して多次元配列をテキストファイルに書き込むこともできます。

import numpy as np

new_list = [[23, 25, 27, 29], [30, 31, 32, 34]]
new_array = np.array(new_list)
print(new_array)

with open("sample.txt", "w+") as f:
    data = f.read()
    f.write(str(new_array))

出力:

[[23 25 27 29]
[30 31 32 34]]

NumPy は、配列を操作するためのさまざまな関数を提供する科学ライブラリです。numpy.savetxt() 関数を使用して、配列をテキストファイルに保存できます。この関数は、ファイルの名前、形式、エンコード形式、列を区切る区切り文字、ヘッダー、フッター、ファイルに付随するコメントなど、いくつかのパラメーターを受け入れます。

これに加えて、NumPy 関数はテキストファイルをロードするための numpy.loadtxt() 関数も提供します。

次のコードに示すように、配列をテキストファイルに保存し、これら 2つの関数を使用してロードできます。

import numpy as np

new_list = [23, 24, 25, 26, 28]
new_array = np.array(new_list)
print(new_array)

np.savetxt("sample.txt", new_array, delimiter=", ")

content = np.loadtxt("sample.txt")
print(content)

出力:

[23 24 25 26 28]

以下に示すように、これらの関数を使用して、多次元配列をテキストファイルに保存することもできます。

import numpy as np

new_list = [[23, 24, 25, 26, 28], [34, 45, 46, 49, 48]]
new_array = np.array(new_list)
print(new_array)

np.savetxt("sample7.txt", new_array, delimiter=", ")

content = np.loadtxt("sample7.txt")
print(content)

出力:

[[23 24 25 26 28]
 [34 45 46 49 48]]
著者: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

関連記事 - Python Array