Für Python 3.4 oder höher sollten Sie einfach os.path wegwerfen und pathlib verwenden

Pathlib wurde als Modul zum Ausführen von Dateipfadoperationen in Python 3.4 hinzugefügt.

Bisher wurden für Dateipfadoperationen os.path und glob verwendet. Durch die Verwendung von pathlib ist der kontinuierliche Betrieb von Dateipfaden jedoch sehr einfach zu schreiben. Sie sollten ihn daher aktiv verwenden.

Merkmale von Pathlib

pathlib hat die folgenden Funktionen.

Objektorientierung

In os.path usw., die ich bisher verwendet habe, wurde die Funktion von einer unabhängigen Funktion bereitgestellt.

Andererseits bietet pathlib Funktionen als Methoden und Eigenschaften der Path-Klasse.

pathlib


>>> from pathlib import Path
>>> Path('/a/b/c.txt').parent
PosixPath('/a/b')
>>> Path('/a/b/c.txt').parents[1]
PosixPath('/a')
>>> Path('/a/b').joinpath('c/d')
PosixPath('/a/b/c/d')
>>> Path('/a/b') / 'c/d'
PosixPath('/a/b/c/d')

Der Rückgabewert ist auch ein [Pfad] -Objekt anstelle von str.

Integration von Dateipfadoperationsfunktionen

Bisher wurden die Funktionen von Dateipfadoperationen nicht nur auf os.path, sondern auch auf mehrere Module wie os, glob und die integrierte Funktion open verteilt, aber in pathlib sind die meisten von ihnen verteilt. Funktionen sind integriert.

pathlib glob


Path('.').glob('*')

pathlib offen


Path('a.txt').open('w')

In Python 3.6 und höher wurden einige der bisher verwendeten Module so geändert, dass sie nicht nur str-, sondern auch Path -Objekte als Argumente empfangen können.

Eingebaute Funktion offen()Übergeben Sie ein Pfadobjekt an


open(Path('a.txt'), 'w')

Vorteile der Verwendung von Pathlib

Mit der bisherigen Erklärung mögen sich einige Leute fragen: "Ist es nicht einfach mehr Arbeit, eine Instanz zu erstellen?"

** pathlib ist jedoch am nützlichsten, wenn kontinuierliche Pfadoperationen ausgeführt werden. ** ** **

Vergleichen wir als Beispiel den Prozess der Überprüfung, ob eine Datei mit dem Namen "hoge.txt" im übergeordneten Verzeichnis des Verzeichnisses vorhanden ist, in dem eine bestimmte Datei gespeichert ist.

Erstens, wenn Sie os.path verwenden.

os.path


>>> os.path.exists(os.path.join(os.path.dirname(os.path.dirname('/a/b/c.txt')), 'hoge.txt'))
False

Funktionsaufrufe sind verschachtelt und auf den ersten Blick können Sie nicht sofort verstehen, was Sie tun.

Als nächstes wird pathlib verwendet.

pathlib teil 1


>>> Path('/a/b/c.txt').parent.parent.joinpath('hoge.txt').exists()
False

pathlib teil 2


>>> (Path('/a/b/c.txt').parents[1] / 'hoge.txt').exists()
False

Es kann natürlich von links nach rechts gelesen werden, was es sehr leicht verständlich macht.

Wie Sie sehen können, macht ** pathlib kontinuierliche Pfadoperationen sehr einfach zu lesen (schreiben). ** ** **

Ist Pathlib weit verbreitet?

Ich habe pathlib in der Praxis noch nicht verwendet und den verwendeten Code nicht gesehen.

Ich habe versucht herauszufinden, wie viel es tatsächlich verwendet wird.

Google Trend

https://trends.google.co.jp/trends/explore?date=today%205-y&q=python%20os.path,python%20pathlib

python_os_path__python_pathlib_-_調べる_-_Google_トレンド.png

Die Anzahl der Suchanfragen nimmt zu, jedoch noch nicht so stark wie bei os.path.

GitHub

Ich konnte das Datum nicht mit Code suchen, überprüfen Sie es daher mit Problem.

Jahr os.path pathlib
2014 293 77
2015 897 181
2016 826 342
2017 463 448

Pathlib nimmt stetig zu und es scheint, dass os.path in diesem Jahr überholt wird.

Qiita

Überprüfen Sie es mit [Qii Trend].

https://qiitrend.herokuapp.com/trend?mode=count&period=4&query=tag%3Apython+os.path&query=tag%3Apython+pathlib&unit=yearly

QiiTrend.png

In Qiitas Artikel wird Pathlib fast nicht verwendet.

Bedeutet dies nach den Ergebnissen von GitHub und Qiita, dass sich die Verbreitung nur in Japan verzögert?

Recommended Posts

Für Python 3.4 oder höher sollten Sie einfach os.path wegwerfen und pathlib verwenden
Locken wegwerfen und httpie verwenden
[Python] Verwenden Sie und und oder beim Erstellen von Variablen
Verwenden Sie pathlib in Maya (Python2.7), um sich auf das kommende Python3.7 vorzubereiten
Sie sollten wissen, ob Sie Python verwenden! 10 nützliche Bibliotheken
% Und str.format () in Python. Welches benutzt du?
Aktualisieren Sie Raspberry Pi Python mit pyenv auf 3.7 oder höher
Lassen Sie Python für Sie handeln, dann Ihre Augen und Ihr Gehirn ...
Welches sollte ich für die Datenanalyse studieren, R oder Python?