ファイルの操作は、 Pythonの基本的かつ重要な知識ポイントと見なすことができます。クロール、データ分析、Web開発、またはグラフィカルインターフェイスとデータ分析の作成のいずれにおいても、ファイル関連の操作が必要になる場合があります。
今日は、Pythonのさまざまなファイル処理についてまとめて調べて確認します。
open()モードopen()関数open(ファイル名、操作モード)関数は、指定されたモードで指定されたファイル名のファイルを開くために使用されます。
| 列名 | 列名 |
|---|---|
| w | 書き込みモード:ファイルの内容が消去されて再書き込みされます |
| r | 読み取りモード:ファイルの内容のみを読み取ります |
| a | 追加モード:ファイルコンテンツの最後にコンテンツを追加します |
wモードを使用してファイルコンテンツを書き込みます
rモードを使用してファイルの内容を読み取ります
aモードを使用してファイルコンテンツを追加します
osモジュール経由os.listdir(ディレクトリ名):ディレクトリ名をパラメータとして受け取り、ディレクトリ内のすべてのファイル名とサブディレクトリ名を含むリストを返します。os.scandir(directory name):その動作はlistdir()に似ていますが、文字列ではなくファイルオブジェクトのイテレーターを返します。pathlibモジュール経由pathlib.Path.iterdir(): pathオブジェクトで機能し、 scandir()と同様のイテレーターオブジェクトを返します。フォルダ構造は次のとおりです。

os.listdir()を使用して ####を取得します
os.scandir()を使用して ####を取得します
pathlibを使用して ####を取得します
Pythonには、ファイル情報を取得するための豊富な関数とメソッドがあります。
osモジュール経由os.stat(パス文字列)は、パラメータとしてファイルまたはフォルダのパスを指定すると、 stat_resultオブジェクトを返します。os.scandir(directory name)、上記で紹介したこのメソッド、反復可能オブジェクトを返します。この反復可能オブジェクトをトラバースします。トラバースされた各オブジェクトにはstat()メソッドがあり、その戻り値はと同じです。 os.stat() は同じです。pathlibモジュール経由pathlib.Path.iterdir()の場合、戻り値の各オブジェクトには、os.scandir()と同じstat()メソッドがあります。os.stat() ** ####を使用します
返される stat_result()オブジェクトには、次の一般的な情報が含まれています。
st_mode、ファイルモード:ファイルタイプとファイルモードビット(つまり、許可ビット)を含みます。
プラットフォームに関連するst_inoですが、ゼロでない場合、ファイルはst_devの値に従って一意に識別されます。通常:
Unixでは、この値はinode番号を表します。
Windowsでは、この値はファイルのインデックス番号を表します。
st_dev、ファイルが配置されているデバイスの識別子。
st_nlink、ハードリンクの数。
st_ui、ファイル所有者のユーザーID。
st_gid、ファイル所有者のユーザーグループID。
st_size、ファイルサイズ(バイト単位)、ファイルは通常のファイルまたはシンボリックリンクにすることができます。シンボリックリンクのサイズは、リンクに含まれるパスの長さであり、最後のnullバイトは含まれません。
st_atime、最新のアクセス時間(秒単位)。
st_mtime、最新の変更時間(秒単位)。
プラットフォームに応じて、st_ctime:
Unixでの最新のメタデータ変更の時刻を示します。
Windowsでは、作成時間(秒単位)を意味します。
os.scandir() ** ####を使用します
osモジュールと pathlibモジュールを使用してディレクトリを作成することもできます。
osモジュール経由os.mkdir(ディレクトリ名)、指定されたディレクトリ名を使用して単一のディレクトリを作成します。os.makedirs(ディレクトリパス)、完全なディレクトリツリーを作成します。pathlibモジュール経由pathlib.Path.mkdir()、指定された Pathオブジェクトからディレクトリを作成します。
osモジュール経由os.remove(file path)、単一のファイルを削除します。ファイルが存在しない場合は FileNotFound例外をスローし、パスがディレクトリの場合はʻIsADirectoryError`例外をスローします。os.unlink(file path)、os.remove()と同じ;pathlibモジュール経由pathlib.Path.unlink()、Path()オブジェクトファイルを削除します。os.rmdir(ディレクトリパス)、指定されたディレクトリパスを削除します。ディレクトリが空でない場合、 OSError例外がスローされます。pathlib.Path.rmdir()、パスオブジェクトを削除します。shutdown.rmtree(ディレクトリパス)、完全なディレクトリツリーを削除します。

ファイル名パターンマッチング(通常を含む)に対してファジークエリを実行する必要がある場合や、ファイル名パターンマッチングに関連する関数とメソッドを使用する必要がある場合があります。
. startwith() メソッドとendswith()メソッドはどちらも文字列で実行され、ファイル名を処理するときに使用できます。fnmatch.fnmatch(file name、matching pattern)は、ファイル名文字列がパターン文字列と一致するかどうかを検出し、TrueまたはFalseを返します。glob.glob(matching pattern)は、pathnameに一致する可能性のある空のパス名のリストを返します。その要素はパス情報を含む文字列である必要があります。pathlib.Path.glob(マッチングパターン)。globに似ていますが、 Pathオブジェクトに基づいています。
fnmatch ** ####を使用します
os.walk(ディレクトリパス、topdown = True)。ディレクトリツリーを上->下または下->上の順序で参照して、ディレクトリツリーにファイル名を生成します。トップ(トップ自体を含む)をルートとするディレクトリツリー内のディレクトリごとに、トリプル(ディレクトリパス、ディレクトリ名リスト、ファイル名リスト)が生成されます。
tempfile.TemporaryFile(mode)は、指定されたモードで一時ファイルを作成して開きます。tempfile.TemporaryDirectory()、一時ディレクトリを作成して返します。
shutdown.copy(source、target)、ソースファイルをターゲットにコピーします。ターゲットがディレクトリの場合は、ソースと同じファイル名を使用します。shutdown.copytree(ソースディレクトリ、ターゲットディレクトリ)、ソースディレクトリからターゲットディレクトリにディレクトリツリー全体をコピーして、ターゲットディレクトリに戻ります。shutdown.move(source、target)、ファイルまたはディレクトリをソースからターゲットに移動します。os.rename(現在の名前、新しい名前)、ファイルまたはディレクトリの名前を変更します。zipfile.Zipfile(圧縮パッケージ名、モード)は、指定されたモードで圧縮パッケージを開きます。zipfile.Zipfile()。extract(file name)、指定されたファイルをzipファイルから抽出します。shutdown.make_archive(ベースファイル名、フォーマット名、ルートパス)、指定されたパラメーターからフォルダーを圧縮パッケージとして圧縮およびパックします。shutdown.unpack_archive(圧縮パッケージファイル名、抽出されたディレクトリ)、圧縮パッケージを指定されたディレクトリに解凍します。
fileinput.input([ファイル名リスト])、指定されたファイル名リストから各ファイルを読み取ります。Recommended Posts