ホームページ  >  記事  >  バックエンド開発  >  Python ファイル システム モジュールの pathlib ライブラリの使用方法

Python ファイル システム モジュールの pathlib ライブラリの使用方法

WBOY
WBOY転載
2023-05-13 23:49:041889ブラウズ

1. pathlib ライブラリの公式定義

pathlib は Python の組み込みライブラリであり、Python ドキュメントによる定義はオブジェクト指向ファイルシステム パスです。 pathlib は、さまざまなオペレーティング システムに適用できるセマンティクスを備えたファイル システム パスを表すクラスを提供します。

パス クラスは、I/O なしで純粋な計算操作を提供する純粋パスと、純粋なパスを継承するが I/O 操作も提供する具象パスに分かれています。

2. Pathlib チート

1. 基本的な使用法

  • Path.itrdir() # ディレクトリのサブディレクトリを走査しますまたは File

  • Path.is_dir() # ディレクトリかどうかを判断します

  • #Path.glob () # ディレクトリをフィルターします (ジェネレーターに戻ります)

  • ##Path.

    resolve() # 絶対パスを返します

  • Path .

    exists() # パスが存在するかどうかを確認します

  • Path.

    open() # ファイルを開きます (サポートされています)

  • Path.

    unlink() # ファイルまたはディレクトリを削除します (ディレクトリは空ではないため、例外がトリガーされます)

2. 基本属性

  • Path.

    parts # パスの分割は os.path.split() と似ていますが、タプルを返します

  • Path.

    drive # ドライブ名を返します

  • #Path.
  • root

    # パスのルート ディレクトリを返します

  • Path.
  • anchor

    # ドライブまたはルートを自動的に決定して返します

  • Path.
  • parents

    #すべての親ディレクトリのリストを返します

  • 3. パスを変更します

    Path.
  • with_name

    () # パスを変更しますname、最終レベルのパス名を変更します

  • Path.
  • with_suffix

    () # パスのサフィックスを変更します

  • 4、Splice path

    Path.
  • joinpath

    () #結合パス

  • Path.
  • relative_to

    () #相対パスを計算

    ##5 、パスをテスト

#Path.
    match
  • () # パスがパターンと一致するかどうかをテスト

    #Path.

    is_dir
  • () # ファイルかどうか
  • Path.is_absolute

    () # 絶対パスかどうか
  • Path .is_reserved

    () # 予約パスかどうか
  • Path .exists

    () # パスが実際に存在するかどうかを確認します
  • 6. その他のメソッド

Path.

cwd

() # 現在のディレクトリのパス オブジェクトを返します
  • Path.home

    () # 現在のユーザーのホーム パス オブジェクトを返します
  • Path.stat

    () # パス情報を返します。os.stat()
  • Path.chmod# と同じです。 ##() # os.chmod() と同様にパスの権限を変更します

  • #Path.

    expanduser() # Expand~完全なパス オブジェクトを返す

  • Path.

    mkdir() # ディレクトリを作成します

  • Path.

    rename() # パスの名前を変更します

  • Path.

    rglob() # サブディレクトリ内のすべてのファイルを再帰的に走査します

  • 3. os と pathlib の違い。 Path

    Python3標準ライブラリpathlibモジュールのPathはosモジュールのpathメソッドに比べてパス上で動作するため、よりシンプルになります。

    1. 現在のファイル パスを取得する
os モジュールを使用する場合、

getcwd()

メソッド

## を通じて現在のファイル パスを直接取得できます。 #Pycharm では、

os.path.dirname(__file__)

を使用して現在のファイル パスを取得できます。Python には、Pycharm によって提供される __file__ の概念が提供されていないためです。

import os

print(os.getcwd())  # C:\Users\bobin.yang\PycharmProjects\untitled
print(os.path.dirname(__file__))  # C:/Users/bobin.yang/PycharmProjects/untitled

pathlib モジュールで、Path.cwd() メソッドを渡すと、現在のファイル パスを直接取得できます。試してみてください:

import pathlib

print(pathlib.Path.cwd())  # C:\Users\bobin.yang\PycharmProjects\untitled

Pycharm を通じて、ショートカット キーを使用できます ctrl マウスの左ボタン クリックすると、この方法の詳細な説明が表示されます。

上の図からわかるように、cwd() メソッドは、OS ライブラリの

getcwd()

メソッドをカプセル化したものにすぎません。しかし、正式な発表は決して作り話ではありません。さあ、一緒にその秘密を明らかにしましょう。 2. 上位/上位ディレクトリの取得

上記の例では、pashlib ライブラリの使い方が複雑になっているように見えますが、その秘密を明らかにするには、その構成を感じるしかありません。 pathlib ライブラリと pathlib を理解する ライブラリがどのように便利さをもたらすか。 os モジュールでは、特定のファイルの親ディレクトリを取得したい場合、os モジュールは次のように記述されます。 <pre class="brush:py;">import os print(os.path.dirname(os.path.dirname(os.getcwd()))) # C:\PycharmProjects</pre> pathlib ライブラリでは、次の単純なコードで実現できます。方法:

import pathlib

print(pathlib.Path.cwd().parent)   # C:\PycharmProjects

そして、彼の祖父を見つける必要がある場合は、別の

.parent

を尋ねてください。 osモジュールの

os.path.dirname()

と比べると便利すぎませんか?

3. パスの結合

親ディレクトリ内のパスを結合したい場合は、OS モジュールを通じてこのような長いコード文字列を記述する必要がある場合があります: <pre class="brush:py;">import os print(os.path.join(os.path.dirname(os.getcwd()), &amp;#39;路径拼接&amp;#39;, &amp;#39;真麻烦&amp;#39;)) # C:\PycharmProjects\路径拼接\真麻烦</pre>pathlib を使ったら、その便利さを一緒に体験しましょう! <pre class="brush:py;"># /Users/mac/test.py import os paths = (&amp;#39;路径拼接&amp;#39;, &amp;#39;真麻烦&amp;#39;) print(pathlib.Path.cwd().parent.joinpath(*paths)) # C:\PycharmProjects\路径拼接\真麻烦</pre><p>通过 pathlib 库拼接路径,你可以很方便的调节他在他祖辈的位置,妙哉。</p> <h4>4、 其他封装</h4> <p>pathlib 封装了很多的 os.path 中的方法,如下所示:</p> <ul class=" list-paddingleft-2"> <li><p>os.path.expanduser() --> pathlib.Path.home()</p></li> <li><p>os.path.expanduser() --> pathlib.Path.expanduser()</p></li> <li><p>os.stat() --> pathlib.Path.stat()</p></li> <li><p>os.chmod() --> pathlib.Path.chmod()</p></li> </ul> <h3>四、pathlib.PurePath的使用</h3> <p>上一节的操作大部分都是通过 pathlib 库中的 Path 实现,其实他还有一个更加高大上的模块,也就是我们这一节的主角:<code>pathlib.PurePath

PurePath 是一个纯路径对象,纯路径对象提供了实际上不访问文件系统的路径处理操作。

有三种方法可以访问这些类,我们也称之为 flavor 。

1、 PurePath.match

下面让我们来实现一个神奇的功能,判断当前的路径下是否有符合'*.py'规则的文件。

import pathlib

print(pathlib.PurePath(__file__).match(&#39;*.py&#39;))  # True

输出为什么会是 True 呢?因为当前文件夹下不就有一个 test.py 吗?

2、 PurePath的子类:PurePosixPath(非Windows系统)、PureWindowsPath

看见 pathlib.PurePath 后面跟着 match,那是不是能说明他是个对象,而不是一个单纯的路径字符串,因此我们可以试着打印 pathlib.PurePath 看一看。

import pathlib

os_path = os.path.dirname(__file__)
print(os_path)  # C:/PycharmProjects/untitled

pure_path = pathlib.PurePath(__file__)
print(pure_path)  # C:\PycharmProjects\untitled\run.py
print(type(pure_path))  # <class &#39;pathlib.PureWindowsPath&#39;>


print(pathlib.PurePath(__file__).match(&#39;*.py&#39;))  # True

通过打印 os.path 获取当前路径的结果,得到一个路径字符串;而通过 pathlib.PurePath 则获得了一个 PurePosixPath 对象,并且由此得到的路径包括了当前文件 run.py。

以上がPython ファイル システム モジュールの pathlib ライブラリの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。