Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのオブジェクト指向ファイルシステムパス(pathlib)


pathlibモジュールは、ファイルシステムパスを処理するためのオブジェクト指向アプローチを提供します。このモジュールは、さまざまなオペレーティングシステムに適した機能も提供します。このモジュールで定義されているクラスには、純粋なパスタイプと具象パスタイプの2つのタイプがあります。純粋なパスは純粋な計算操作しか実行できませんが、具象パスはI/O操作も実行できます。

pathlibモジュールは次のクラスを定義します-

モジュールと説明
Sr.No。
1 PurePath
他のすべてのクラスの基本クラス
2 パス
PurePathからサブクラス化されています。これは、ファイルシステムパスを表す具象クラスです。
3 PosixPath
WindowsOS以外のパスサブクラス
4 WindowsPath
Windowsシステムのパスサブクラス
5 PurePosixPath
Windows以外のシステム用のPurePathサブクラス
6 PureWindowsPath
Windowsシステム用のPurePathサブクラス

Pathクラスのインスタンスが作成されると、システムに応じてWindowsPathまたはPosixPathのいずれかが自動的に返されます。

WindowsPathまたはPosixPathオブジェクトを直接作成することもできますが、同じタイプのシステムでのみ作成することはできません。

Pathオブジェクトを作成するには、次の構文を使用します

>>> from pathlib import *
>>> p = Path(".")
>>> type(p)
<class 'pathlib.WindowsPath'>

上記のステートメントがWindowsシステムで実行されているため、WindowsPathオブジェクトが作成されていることがわかります。 「。」現在のディレクトリを参照します。

Pathクラスには、次のメソッドが定義されています

Absolute() −Pathオブジェクトの絶対バージョンを返します。

>>> p.absolute()
WindowsPath('C:/python36')

存在する() −指定されたパスが存在する場合はtrueを返します

>>> p = Path("mydir")
>>> p.exists()
False
>>> p = Path("etc")
>>> p.exists()
True

is_dir() −パスがディレクトリの場合はtrueを返します

>>> p = Path("etc")
>>> p.is_dir()
True
>>> p = Path("test.py")
>>> p.is_dir()
False

is_file() −パスがファイルに対応する場合はtrueを返します

>>> p = Path("tmp.py")
>>> p.is_file()
True
>>> p = Path("etc")
>>> p.is_file()
False

iterdir() −パスに対応するディレクトリ内のファイル名を生成するジェネレータを返します。

>>> p = Path("libs")
>>> for f in p.iterdir():
print (f)
libs\libpython36.a
libs\python3.lib
libs\python36.lib
libs\_tkinter.lib
>

mkdir() −パスがまだ存在しない場合は、パスを表す新しいディレクトリを作成します。

>>> p = Path("mydir")
>>> p.mkdir()
>>> p.absolute()
WindowsPath('C:/python36/mydir')
>>> p = Path("codes")
>>> p.mkdir()
FileExistsError: [WinError 183] Cannot create a file when that file already exists: 'codes'

open() − Pathオブジェクトで表されるファイルを開き、ファイルオブジェクトを返します。これは、組み込みのopen()関数に似ています。

>>> p = Path("Hello.py")
>>> f = p.open()
>>> f.readline()
'Hello Python'

read_bytes() −ファイルをバイナリモードで開き、そのデータをバイナリ形式で読み取り、同じものを閉じます。

>>> p = Path("Hello.py")
>>> f.read_bytes()
>>> p.read_bytes()
b'Hello Python'

read_text() −ファイルをテキストモードで開いてテキストを読み取り、後で閉じます。

>>> p = Path("Hello.py")
>>> p.read_text()
'Hello Python'

write_text() −ファイルを開き、テキストを書き込んで閉じます。

>>> p = Path("Hello.py")
>>> p.write_text("Hello how are you?")
18

write_bytes() −バイナリデータをファイルに書き込み、同じものを閉じます。

>>> p = Path("Hello.py")
>>> p.write_bytes(b'I am fine')
9

stat() −このパスに関する情報を返します。

>>> p.stat()
os.stat_result(st_mode = 16895, st_ino = 9570149208167477, st_dev = 1526259762, st_nlink = 1, st_uid = 0, st_gid = 0, st_size = 0, st_atime = 1543085915, st_mtime = 1543085915, st_ctime = 1543085915)

rmdir() −Pathオブジェクトに対応するディレクトリを削除します。

>>> p = Path("mydir")
>>> p.rmdir()

Path.cwd() −これはPathクラスのclassmethodです。現在の作業ディレクトリへのパスを返します

>>> Path.cwd()
WindowsPath('C:/python36')

Path.home() −これはPathクラスのclassmethodです。ホームディレクトリへのパスを返します

>>> Path.home()
WindowsPath('C:/Users/acer')

「/」演算子はパスの作成に使用されます。

>>> p = Path(".")
>>> p1 = p/'codes'
>>> p1.absolute()
WindowsPath('C:/python36/codes')

この記事では、pathlibモジュールで定義されているファイルシステムオブジェクトへのオブジェクト指向APIについて学習しました。


  1. 最小コストパスのためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −コストマトリックスと位置(m、n)が与えられているので、(0、0)から(m、n)に到達するための最小コストパスのコストを見つける必要があります。各セルは、あるセルから別のセルに移動するためのコストを表します。 次に、以下の実装のソリューションを見てみましょう- 例 # dynamic approach R = 3 C = 3 def minCost(cost, m, n):    # initialization    tc = [[0 for x in range

  2. Pythonにパスを追加する方法は?

    Pythonは、1991年に最初にリリースされたプログラミング言語です。複数のオペレーティングシステムで使用できるアプリケーションがあり、開発者はその上で新しいコードを記述および開発できます。 Pythonは、開発者と広範なサポートに伴う可能性が非常に大きいため、最も広く使用されているプログラミング言語の1つです。 ユーザーが「python」という単語を入力するたびに 」コマンドプロンプトでエラーが返されます。正しく機能するには、パス全体を指定する必要があります。これは、コマンドプロンプトが出力をロードするために「python.exe」を見つける必要があり、パス全体が指定されていない限り、