HOME
Python でプログラミングを始められる方を対象とした Python 入門です。Python におけるプログラムの記述方法をサンプルコードと一緒に学習します。
ファイルを読み込むためには open()
関数を使用します。ファイルを閉じる場合は、close()
関数を使用します。
f = open('sample.txt')
print(f)
# ファイルの内容が出力される
f.close()
open()
ファイルの読み込み時にエンコーディングを指定する場合は、open()
関数の引数に encoding
を指定します。encoding
が指定されていない場合に使われるエンコーディングは、プラットフォームに依存します。Python で使用可能なエンコーディングの種類は、標準エンコーディングを参照してください。
f = open('sample.txt', encoding='utf-8')
open()
ファイルを読み取り専用で開くには、open()
関数の引数に mode='r'
を指定します。ただし、デフォルト値が mode='r'
であるため、この引数は省略可能です。
f = open('sample.txt', mode='r')
open()
read()
関数を使用すると、読み込んだファイル全体を文字列として取得できます。
f = open('sample.txt')
print(f.read())
# line 1
# line 2
# line 3
f.close()
read()
ファイル全体をリストとして読み込むには、readlines()
関数を使用します。readlines()
関数を使用すると、読み込んだファイル全体を行ごとに分割したリストとして取得できます。ただし、リストの要素は末尾に改行コード \n
を含みます。
f = open('sample.txt')
print(f.readlines())
# ['line 1\n', 'line 2\n', 'line 3']
f.close()
readlines()
改行コード \n
を除去したい場合は、以下のようにします。
f = open('sample.txt')
list = [s.strip() for s in f.readlines()]
print(list)
# ['line 1', 'line 2', 'line 3']
f.close()
readlines()
ファイルを一行ずつ読み込むには for
文を使います。for
文を使うことで、ファイルの先頭から一行ずつ行末の改行コードを含む文字列を取得できます。
f = open('sample.txt')
for line in f:
print(line)
# line 1
#
# line 2
#
# line 3
#
f.close()
ファイルをバイナリモードで読み込むためにはモードの末尾に b
を指定します。例えば、バイナリファイルを読み込む場合は mode='rb'
を指定します。バイナリファイルを読み込む場合、エンコーディングの指定はできません。
f = open('sample.bin', 'rb')
print(f.read())
# b'\x01\x02\x03\x04\x05\x06\ ...
f.close()
バイナリファイルを Print 文で出力するとバイト列が文字列として出力されます。バイト列をそのまま出力する場合は、sys.stdout.buffer
で出力します。
import sys
f = open('sample.bin', 'rb')
sys.stdout.buffer.write((f.read())
f.close()