0Pricing
Python Academy · レッスン

ファイルの開き方と読み取り方

テキストファイルを開き、read と readlines で内容を読み取ります。

「ファイルの開き方と読み取り方」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。

概要

Python組み込みのopen()関数を使うと、ファイルシステムにアクセスできます。大きなデータを扱う場合、ファイルを1行ずつ読み込むとメモリを効率的に使用できます。

open()の基本

f = open('file.txt', 'r') は読み取りモードでファイルを開きます。モードには'r'(読み取り)、'w'(書き込み)、'a'(追加)、'b'(バイナリ)があります。
# f = open('data.txt', 'r')
# content = f.read()
# f.close()
print('open demo')

read()メソッド

f.read() はファイル全体を1つの文字列として読み取ります。小さなファイルには適していますが、数GBのファイルでは避けてください。
# content = open('data.txt').read()
print('read demo')

readlines()

f.readlines() は各行の末尾に\nが付いた、行のリストを返します。改行を除去するにはline.rstrip()が必要です。
# lines = open('data.txt').readlines()
# for line in lines: print(line.rstrip())
print('readlines demo')

readline()

f.readline() は一度に1行を読み取ります。細かく制御したい場合や、非常に大きなファイルをストリーミングする場合に便利です。
# f = open('data.txt')
# first = f.readline()
print('readline demo')

行を直接反復処理する

for line in f: は最もメモリ効率のよい方法です。ファイル全体を読み込まず、1行ずつストリーミングします。
# for line in open('data.txt'):
#     print(line.rstrip())
print('line iterator demo')

エンコーディングパラメーター

プラットフォームごとに異なるデフォルトエンコーディングによるバグを避けるため、必ずencodingを指定してください:open('file.txt', encoding='utf-8')
# f = open('data.txt', 'r', encoding='utf-8')
print('encoding demo')

特定のバイトを読み取る

f.read(100) は最大100バイトまたは100文字を読み取ります。f.seek(0) はファイルポインターを先頭に戻します。
# f = open('data.txt')
# chunk = f.read(100)
# f.seek(0)
print('seek demo')

tell()

f.tell() は現在のバイト位置を返します。seek()と組み合わせると、ファイル内の任意の位置に移動できます。
# f = open('data.txt')
# f.read(5)
# print(f.tell())
print('tell demo')

バイナリファイルの読み取り

open('image.png', 'rb') はバイナリ読み取りモードでファイルを開きます。文字列ではなくbytesオブジェクトを返します。
# with open('image.png', 'rb') as f:
#     header = f.read(4)
print('binary read demo')

ファイルは必ず閉じる

f.close() はOSのファイルハンドルを解放します。close()の前にコードが例外を発生させると、ハンドルがリークします。これを避けるにはwithを使ってください。
# f = open('data.txt')
# try:
#     content = f.read()
# finally:
#     f.close()
print('close demo')

理解度チェック

ファイルオブジェクトから1行ずつ読み取るメソッドはどれですか?

まとめ

open(path, mode, encoding) でファイルを開きます。read()ですべての内容を取得し、readline()で1行を取得します。効率よく処理するには、ファイルオブジェクトを直接反復処理します。ファイルは必ず閉じてください。

次へ進む

よくできました。次のレッスンに進み、学習をさらに進めましょう。

よくある質問

「ファイルの開き方と読み取り方」レッスンは無料ですか?

はい。「ファイルの開き方と読み取り方」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。

「ファイルの開き方と読み取り方」で何を学びますか?

テキストファイルを開き、read と readlines で内容を読み取ります。 ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Python Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「ファイルの開き方と読み取り方」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPython Academyレッスンでコードを書いて実行できますか?

はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ファイルの開き方と読み取り方
  2. ファイルへの書き込みと追記
  3. ファイル操作で with 文を使う
  4. pathlib によるファイルパス操作
← Python Academyに戻る