例を使用して、Python でのファイル処理を理解する — SitePoint

Python でのファイルの処理に関するこの記事では、Python OS モジュールの使用方法と、ローカル ファイルとディレクトリをナビゲートする方法を学習します。 また、Python でファイルを開いたり、読み込んだり、書き込んだり、閉じたりする方法も学びます。

ファイル処理は、プログラムの終了後にデータを永続化するための優れた方法です。 コンピュータ プログラムからのデータはファイルに保存され、後でアクセスできます。 Python は、他の多くのプログラミング言語と同様に、データを作成、オープン、読み取り、ファイルに書き込むための便利なメソッドを提供します。

コンテンツ:

  1. Python でのファイル処理: ファイルとファイル パス
  2. Python でのファイル処理: データの読み取りと書き込み

Python でのファイル処理: ファイルとファイル パス

ファイルは、コンピューター プログラムからのデータを永続化するための簡単な代替手段です。 ランダム アクセス メモリ (RAM) は、コンピュータ システムの電源を切るとすぐに以前のデータがすべて失われるため、データを一時的に保存することしかできません。 ファイルは、コンピューター上のデータのより永続的なストレージ ポイントであるため、優先されます。 もっている データが保存されるローカル ディスク上の場所です。 これには、ファイル名とそのパスという 2 つの重要なプロパティがあります。

OS モジュールの使用

Python は、コンピューターのオペレーティング システムと対話するための組み込みの OS モジュールを提供します。 OS モジュールには、Python でのディレクトリやファイルの移動、フォルダーの作成、ファイル パスの識別などの操作の実行に役立つインターフェイス (関数) があります。

OS モジュールを使用するには、以下に示すようにプログラムにインポートします。

import os

現在の作業ディレクトリを取得する方法

Python で現在の作業ディレクトリ (「cwd」) を取得するには、 getcwd() 方法。 このメソッドは、以下のコード スニペットに示すように、現在作業しているディレクトリのパスを文字列として返します。

import os 

directory = os.getcwd()
print(directory)
>>>>
/home/ini/Dev/Tutorial/sitepoint

絶対パスと相対パス

ファイル パスは、絶対パスまたは相対パスの 2 つの方法で指定できます。 どちらのパスも現在のファイルの場所を指しています。

お茶 絶対の ファイルのパスは、ルート フォルダーから始まるそのパスを宣言します。 絶対パスは次のようになります。

/home/ini/Dev/Tutorial/sitepoint/filehandling.py

ルート フォルダー (上記のコードに示されている) は次のとおりです。 home Linux OSがあります。

お茶 相対的 ファイルのパスは、現在の作業ディレクトリに関連するパスを宣言します。 例を見てみましょう:

./sitepoint/filehandling.py

上記のコードは、Python ファイルの相対パスを示しています filehandling.py.

Python でディレクトリを作成する方法

OS モジュールには mkdir() Python で新しいフォルダーまたはディレクトリを作成する方法。 お茶 mkdir() メソッドは、1 つの引数 (ディレクトリの名前) を取り、デフォルトの動作として現在のディレクトリに作成されます。 以下のコードを参照してください。

import os

os.mkdir("photos")

ただし、ファイル パスを指定することで、別の場所にディレクトリを作成できます。 以下のコード例では、 projects にフォルダが作成されます。 Tutorial フォルダ:

os.mkdir("/home/ini/Dev/Tutorial/projects")

中を確認すると Tutorial フォルダー、新しく作成されたフォルダーを見つけます projects フォルダ。

現在の作業ディレクトリを変更する方法

ディレクトリを切り替えるには、 chdir() 方法。 新しいパスは引数としてメソッドに渡され、現在の作業ディレクトリから別のディレクトリに変更されます。

前のコード サンプルで新しいフォルダーを作成した後、ディレクトリを次の場所に変更できます。 projects フォルダ:

import os

os.chdir("/home/ini/Dev/Tutorial/projects")

ディレクトリの変更を確認するには、 getcwd() 現在の作業ディレクトリの文字列を返すメソッド: /home/ini/Dev./Tutorial/projects.

Python でファイルまたはディレクトリを削除する方法

ファイルとディレクトリは、OS モジュールの remove()rmdir() 方法。

Python でファイルを削除するには、ファイル パスを os.remove() 方法。 ファイルを削除するとき、ファイルが存在しない場合、プログラムは FileNotFoundError.

コード例を見てみましょう:

import os

os.remove("random.txt")

ディレクトリを削除または削除するには、次を使用します os.rmdir()、次のように、削除するディレクトリ パスを渡します。

import os

os.rmdir("/home/ini/Dev/Tutorial/projects")

お茶 projects からフォルダが削除されます。 Tutorial フォルダ。

Python でファイルとディレクトリを一覧表示する方法

ディレクトリのすべてのコンテンツの概要を取得するには、 os.listdir() 方法。 このメソッドは、その特定のフォルダー内に存在するすべてのファイルとディレクトリのリストを返します。

import os

print(os.listdir())
>>>>
['array.py', 'unittesting.py', 'search_replace.py', '__pycache__', 'pangram.txt', '.pytest_cache', 'exception.py', 'files.py', 'regex.py', 'filehandling.py']

Python でのファイル処理: データの読み取りと書き込み

Python でのファイル処理は単純で、他のプログラミング言語ほど複雑ではありません。 任意の操作のために Python ファイルを開くときに選択できるさまざまなファイル アクセス モードがあります。

  • r: ファイルを読み取り用に開きます。 ファイルが存在しない場合、読み取りモードはエラーをスローします。

  • r+: ファイルを開き、ファイル オブジェクトにデータを読み書きします。 ファイルが存在しない場合、エラーがスローされます。

  • w: ファイルは、データを書き込むためにこのモードで開かれます。 書き込みモードは既存のデータを上書きし、存在しない場合は新しいファイル オブジェクトを作成します。

  • w+: ファイルを開き、データを読み書きします。 このモードで開くと、ファイル上の既存のデータは上書きされます。

  • a: 追加モードは、ファイルが存在する場合にファイルに追加します。 また、既存のファイルがない場合は、新しいファイルを作成します。 既存のデータを上書きしません。

  • a+: このモードは、データの追加と読み取りのためにファイルを開きます。

  • x: 作成モードは、Python でファイルを作成するために使用されます。 ファイルが存在する場合、エラーがスローされます。

追加する b いずれかのアクセス モードに変更すると、デフォルトのテキスト形式からバイナリ形式に変更されます (たとえば、 rbrb+wb、 等々)。

Python でファイルを開く方法

Python でファイルを開くには、 open() 関数が使用されます。 少なくとも 2 つの引数 (ファイル名とモードの説明) を取り、ファイル オブジェクトを返します。 デフォルトでは、ファイルは読み取り用にテキスト モードで開かれますが、代わりにバイナリ モードが必要かどうかを指定できます。

ファイルを開く簡単な構文は次のようになります。

f = open('filename', 'mode')

このステップの後、上記のコードに見られるように、ファイル オブジェクトで読み書き操作を開始できます。 デフォルト モードでは、ファイルは常にテキスト モードで処理されます。

Python でファイルを閉じる方法

ファイル オブジェクトが開かれ、ファイル処理操作が実行された後、ファイルを閉じます。 多くの場合、これは Python でのファイルの読み取りまたは書き込みの最後のステップです。 ファイルオブジェクト close() メソッドは、以前に開いたファイルを閉じるために使用されます。

Python でファイルを閉じると、次のようになります。

f = open('filename', 'mode')
// file operations, reading, writing or appending
f.close()

お茶 with 声明

ファイルを開いてファイル操作を実行したら、ファイルを閉じるのが標準的な方法です。 一部のファイルは、開いた後に閉じるのを逃す可能性があります。

お茶 with ステートメントは、そのスコープ内で最後のファイル処理操作が完了すると、自動的にファイルを閉じます。 例えば:

with open('random.txt', 'r') as f:
    print(f.read())
>>>>
Hello world!
Hello world!

上記のコード スニペットに見られるように、 with ステートメントは、次の後に暗黙的にファイルを閉じます print 声明。

Python でファイルを読み取る方法

Python でファイルからデータを読み取る方法はいくつかあります。 を使用してファイルの内容を読み取ることができます read()readline()、 と readlines() メソッド。

お茶 read() 方法

お茶 read() メソッドは、読み取られているファイルのすべての文字の文字列を返します。 ポインタは、ファイル コンテンツの先頭に置かれます。 デフォルトのモードは、文字数が指定されている場合を除いて、ファイルの先頭からファイルの末尾まで読み取ることです。

以下のコード スニペットを見てください。

f = open('random.txt', 'r')
print(f.read())
f.close()
>>>>
This is some random text.
Here is the second line.
The sky is blue.
Roses are red. 

テキスト ファイルから読み取る文字数を指定できます。 文字数を引数として引数として渡すだけです。 read() 方法:

f = open('random.txt', 'r')
print(f.read(12))
f.close()
>>>>
This is some

上記の例に見られるように、インタープリターはファイル全体から 12 文字だけを読み取ります。

お茶 readline() 方法

このメソッドは、ファイルから一度に 1 行ずつ読み取ります。 ファイルの先頭から読み取り、改行文字が見つかったところで停止します。 以下のコード例を参照してください。

f = open('random.txt', 'r')
print(f.readline())
f.close()
>>>>
This is some random text.

お茶 readlines() 方法

このメソッドは、読み取られている既存のファイルからすべての行のリストを返します。 以下のコード スニペットを参照してください。

f = open('random.txt', 'r')
print(f.readlines())
f.close()
>>>>
['This is some random text.n', 'Here is the second line.n', 'The sky is blue.n', 'Roses are red.']

注: ファイル ストリームを読み取るためのすべてのメソッドは、ファイルの終わりに到達すると空の値を返します。 お茶 seek() メソッドは、ファイル カーソルをファイルの先頭に戻します。

Python でファイルに書き込む方法

お茶 write() Python のメソッドは、データをファイルに書き込もうとするときに役立ちます。 開いているファイルに書き込むには、アクセス モードを次のいずれかに設定する必要があります。 ww+aa+、 等々。 繰り返しますが、デフォルトはバイナリではなくテキスト モードです。

お茶 write() 方法

テキスト ファイルにデータを書き込む場合は、このメソッドに文字列引数を渡します。 ファイルが存在する場合、書き込みモードは既存のデータを上書きすることに注意してください。

f = open('random.txt', 'w')
f.write("Hello world!")
f.close()

お茶 writelines() 方法

この方法は、一度に複数の文字列をテキスト ファイルに挿入するのに役立ちます。 リストをメソッドの引数として渡すことで、一度に複数行の文字列をファイルに書き込むことができます。

words = ['The sky is blue', 'nRoses are red']

f = open('random.txt', 'w')
f.writelines(words)
f.close()

上記のコードは、閉じられたファイルが開かれ、単語リストのいくつかの行が一度に挿入されることを示しています random.txt テキストファイル。

結論

ファイルには 2 つの重要な属性があります。 ファイル名 そしてその . OS モジュールは、ディレクトリをナビゲートし、特定の操作を実行するのに役立ちます。 Python ファイル処理には、いくつかの方法を使用する必要があります。 開いた作成読む、 と 書きます ファイル オブジェクトのデータ。

テキストまたはバイナリ ファイル内のコンテンツを操作する場合は、Python でのファイル処理を理解することも重要です。 操作を実行した後は、必ずファイルを閉じてください。 お茶 with このステートメントは、完了後に暗黙的にファイル オブジェクトを閉じるため、Python でのファイル処理を実行しやすくします。

関連読書:

Leave a Comment

Your email address will not be published. Required fields are marked *