Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan pustaka pathlib modul sistem fail Python

Cara menggunakan pustaka pathlib modul sistem fail Python

WBOY
WBOYke hadapan
2023-05-13 23:49:041941semak imbas

1. Definisi rasmi pustaka pathlib

pathlib ialah pustaka terbina dalam Python Definisi yang diberikan oleh dokumentasi Python ialah laluan sistem fail berorientasikan objek. pathlib menyediakan kelas yang mewakili laluan sistem fail, dengan semantik yang boleh digunakan untuk sistem pengendalian yang berbeza.

Kelas laluan dibahagikan antara laluan tulen, yang menyediakan operasi pengiraan tulen tanpa I/O dan laluan konkrit, yang mewarisi laluan tulen tetapi turut menyediakan operasi I/O.

2. Pathlib menipu

1. Penggunaan asas

  • Laluan.iterdir() # Lintas subdirektori direktori atau Fail

  • Path.is_dir() # Tentukan sama ada ia adalah direktori

  • Path.glob () # Direktori penapis (penjana pulangan)

  • Laluan.selesaikan() # Kembalikan laluan mutlak

  • Laluan .wujud() # Tentukan sama ada laluan itu wujud

  • Laluan.buka() # Buka fail (menyokong dengan)

  • Laluan.nyahpaut() # Padam fail atau direktori (direktori tidak kosong dan mencetuskan pengecualian)

2. Atribut asas

  • Laluan.bahagian # Laluan pisah adalah serupa dengan os.path.split(), tetapi mengembalikan tuple

  • Path. drive # Kembalikan nama pemacu

  • Path.root # Kembalikan direktori root laluan

  • Laluan.sauh # Tentukan dan kembalikan pemacu atau akar secara automatik

  • Laluan.ibu bapa # Kembali senarai semua direktori induk

3 Tukar laluan

  • Laluan.dengan_nama() # Tukar nama laluan. , tukar nama laluan peringkat terakhir

  • Laluan.dengan_akhiran() # Tukar akhiran laluan

4

  • Path.joinpath() # Join path

  • Path.relative_to() # Kira laluan relatif

5 , laluan ujian

  • Laluan.padanan() # Uji sama ada laluan itu sepadan dengan corak

  • Path.is_dir () # Sama ada ia adalah fail

  • Path.is_absolute( ! Laluan.

    wujud
  • () # Tentukan sama ada laluan itu benar-benar wujud
  • 6 Kaedah lain

  • Laluan.cwd() # Kembalikan objek laluan direktori semasa

Path.

home
    () # Kembalikan objek laluan rumah pengguna semasa
  • Laluan.

    stat
  • () # Maklumat laluan kembali, Sama seperti os.stat()
  • Laluan.

    chmod
  • () # Tukar kebenaran laluan, serupa dengan os.chmod()
  • Laluan.

    pengembang
  • () # Kembangkan~Kembalikan objek laluan penuh
  • Laluan.

    mkdir
  • () # Cipta direktori
  • Laluan.

    namakan semula
  • () # Namakan semula laluan
  • Path.

    rglob
  • () # Rekursif melintasi semua Fail dalam subdirektori
  • 3 Perbezaan antara os dan pathlib. Laluan

  • Berbanding dengan kaedah laluan modul os, Laluan modul pathlib perpustakaan standard Python3 beroperasi pada laluan itu.
  • 1. Dapatkan laluan fail semasaApabila menggunakan modul os, anda boleh terus mendapatkan laluan fail semasa melalui kaedah

Dalam Pycharm, anda boleh gunakan

untuk mendapatkannya Laluan fail semasa, kerana Python tidak menyediakan konsep __file__, ia disediakan oleh Pycharm:

import os

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

Dalam modul pathlib, laluan fail semasa boleh diperolehi terus melalui Kaedah

Kita boleh mencubanya :

import pathlib

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

Melalui Pycharm kita boleh menggunakan kekunci pintasan

Klik untuk melihat pengenalan terperinci kaedah ini. getcwd()

Seperti yang dapat dilihat dari gambar di atas, kaedah

hanyalah enkapsulasi kaedah os.path.dirname(__file__) dalam perpustakaan os Ia kelihatan lebih teruk, tetapi pelancaran rasminya pastinya bukan fiksyen mari sama-sama kita ketahui.

2. Dapatkan direktori atas/atas Path.cwd()

Kes di atas seolah-olah membuat penggunaan perpustakaan pashlib lebih rumit Untuk mendedahkan rahsia, kita hanya dapat merasakan komposisi perpustakaan pathlib dan fahami pathlib Bagaimana perpustakaan membawa kemudahan kepada kita.

ctrl+鼠标左键Dalam modul os, jika kita ingin mendapatkan direktori induk fail, modul os ditulis sebagai:

import os

print(os.path.dirname(os.path.dirname(os.getcwd())))  # C:\PycharmProjects

Dalam perpustakaan pathlib, ia boleh dicapai dengan cara mudah ini : cwd()

import pathlib

print(pathlib.Path.cwd().parent)   # C:\PycharmProjects
getcwd()Dan jika anda perlu mencari datuknya, minta seorang lagi

. Berbanding dengan

modul os, adakah ia terlalu mudah?

3. Penyambungan laluan

Jika anda ingin menyambung laluan dalam direktori induknya, melalui modul os anda mungkin perlu menulis rentetan kod yang begitu panjang:

import os

print(os.path.join(os.path.dirname(os.getcwd()), '路径拼接', '真麻烦'))  # C:\PycharmProjects\路径拼接\真麻烦

Apabila anda menggunakan pathlib, mari kita rasai kemudahannya bersama-sama!

# /Users/mac/test.py
import os

paths = ('路径拼接', '真麻烦')
print(pathlib.Path.cwd().parent.joinpath(*paths))  # C:\PycharmProjects\路径拼接\真麻烦

通过 pathlib 库拼接路径,你可以很方便的调节他在他祖辈的位置,妙哉。

4、 其他封装

pathlib 封装了很多的 os.path 中的方法,如下所示:

  • os.path.expanduser() --> pathlib.Path.home()

  • os.path.expanduser() --> pathlib.Path.expanduser()

  • os.stat() --> pathlib.Path.stat()

  • os.chmod() --> pathlib.Path.chmod()

四、pathlib.PurePath的使用

上一节的操作大部分都是通过 pathlib 库中的 Path 实现,其实他还有一个更加高大上的模块,也就是我们这一节的主角:pathlib.PurePath

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

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

1、 PurePath.match

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

import pathlib

print(pathlib.PurePath(__file__).match('*.py'))  # 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。

Atas ialah kandungan terperinci Cara menggunakan pustaka pathlib modul sistem fail Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam