Python Pathlib Memorandum

Was ist Pathlib?

Praktische Funktionen in Standardbibliotheken seit Python 3.4 (?) (Offizielle Dokumentation) Es hat nicht nur viele Alternativen zur Betriebssystembibliothek, es ist auch ein großartiger Typ.

Es ist zu viel Arbeit und zu gut, also ist es viel Arbeit, es herauszufinden (zu viele Funktionen). Daher werde ich schnell nur beschreiben, wie man "Pfad" benutzt, den ich oft persönlich benutze. Ich würde gerne Ihre Kommentare hören, wenn es einen besseren Weg gibt.

Pfadobjektvorbereitung

#importieren
from pathlib import Path

#Objekterstellung
p = Path(r"C:\Users\admin\Desktop\temp\hoge.txt")

So erhalten Sie verschiedene Informationen

#Dateiname
print(path.name) # >> hoge.txt
#Dateiname ohne Erweiterung
print(path.stem) # >> hoge
#Holen Sie sich nur Erweiterung
print(path.suffix) # >> .py
#Am Anfang.Schneiden Sie aus, wenn Sie nicht brauchen
print(path.suffix.lstrip(".")) # >> py

#Bis zur übergeordneten Hierarchie
print(path.parent) # >> C:\Users\admin\Desktop\temp
#Höheres Level (\..\..Es ist in Ordnung, sie zu kombinieren, aber nicht wahr? )
print(path.parents[0]) # >> C:\Users\admin\Desktop\temp
print(path.parents[1]) # >> C:\Users\admin\Desktop
print(path.parents[2]) # >> C:\Users\admin

Grundbetrieb

# os.path.join()Verwendung
path = Path("src", "python", "naritoblog")  # src/python/naritoblog

#Beitritt durch Operator
path1 = Path("src")
path2 = Path("python")
path3 = path1 / path2 / "naritoblog"  # src/python/naritoblog

#Konvertierung in einen String
print(type(path3.__str__())) # >> str
#Das ist in Ordnung
print(type(str(path3)))      # >> str

#Vom relativen Pfad zum absoluten Pfad konvertieren
path1 = Path("hoge.txt")
print(path1)           # >> hoge.txt
print(path1.resolve()) # >> C:\Users\admin\Desktop\temp\hoge.txt

Liste im Ordner abrufen

path = Path("Taisho")
#Nimm alle
list(path.glob("*"))
#Nur Datei
list(path.glob("*.*"))
#Nur Verzeichnis
[list for list in path.iterdir() if list.is_dir()]

Holen Sie sich eine Liste von allem unter einem bestimmten Ordner

Wenn Sie das Objekt "Pfad" verwenden, müssen Sie keine komplizierte rekursive Verarbeitung durchführen!

#Alle folgenden
list(path.glob("**/*"))
#Die folgenden Dateien
list(path.glob("**/*.*"))
#Erweiterung kann angegeben werden
list(path.glob("**/*.txt"))
#Nur Verzeichnis
[list for list in path.glob("**/*") if list.is_dir()]

Eingabe / Ausgabe von Textdateien

Natürlich nicht nur ".txt", sondern alles, was auf Text basiert.

txt_path = Path("xxx.txt")
#Dateierstellung (Export)
with txt_path.open("w", encoding="utf-8") as file:
    file.write("Testausgabe")
#Datei lesen
with txt_path.open("r", encoding="utf-8") as file:
    print(file.read())

e? Ist es lang Dann hier drüben

txt_path.write_text("Beschreibung", encoding="utf-8")  #Schreiben
src = txt_path.read_text(encoding="utf-8")  #Lesen

Ordner erstellen

Erstellen Sie ein fiktives Pfadobjekt und erstellen Sie seine Existenz.

make_dir = Path("mkdir")
#Eltern: Erstellt für jedes Elternverzeichnis (mksirs-like)
# exist_ok: Kann erstellt werden, auch wenn ein Ordner mit demselben Namen vorhanden ist (der vorhandene Fehlerfall verschwindet)
make_dir.mkdir(parents=True, exist_ok=True)
# >>Ein Ordner namens "mkdir" wird im aktuellen Verzeichnis erstellt

Löschen Sie Dateien und Ordner

Ich sage nicht entfernen, um Dateien zu löschen. Die Ära ist unverbunden. ~~ Wörter, die du sagen willst ~~

#Datei löschen
a_txt = Path('xxx.txt')
a_txt.unlink()

#Verzeichnis löschen (nur leer)
rm_dir = Path('mkdir')
rm_dir.rmdir()

Ändern Sie den Dateinamen / die Dateierweiterung

Kurz gesagt, ändern Sie nur die Attribute "Name" und "Suffix" des Objekts "Pfad" Beachten Sie, dass die Informationen des "Path" -Objekts geändert werden, nicht die eigentliche Datei. Wenn Sie die tatsächliche Situation ändern möchten, verwenden Sie "os.rename" usw. (Ist dies mit pathlib möglich?)

Es gibt auch eine ähnliche Funktion, .rename (), aber es war seltsamerweise schwierig zu benutzen, deshalb habe ich sie weggelassen.

#Datei umbenennen (Namensattribut)
path_a = Path(r"C:\temp\a_text.txt")
path_b = path_a.with_name("b_text.txt")
print(path_a) # >> C:\temp\a_text.txt
print(path_b) # >> C:\temp\b_text.txt

#Erweiterung ändern (Suffix-Attribut)
path_a = Path(r"C:\temp\wich_test.txt")
path_b = path_a.with_suffix(".csv")
print(path_a) # >> C:\temp\wich_test.txt
print(path_b) # >> C:\temp\wich_test.csv

Fazit

Die offizielle Dokumentation enthält am häufigsten Informationen zu "pathlib"

Recommended Posts

Python Pathlib Memorandum
Python-Memorandum
Python-Memorandum 2
Python-Memorandum
Python Memorandum
Python Memorandum
Python-Memorandum
Python Memorandum
Python-Memorandum
Python-Grundmemorandum
Python-Memorandum (Algorithmus)
Python-Memorandum [Links]
Python-Memorandum-Nummerierungsvariablen
Python Memorandum (sequentielle Aktualisierung)
Python-Memorandum (persönliches Lesezeichen)
Python Basic Memorandum Teil 2
Neu in Python 3.4.0 (1) --pathlib
Memorandum @ Python ODER Seminar
Python Memorandum Super Basic
Cisco Memorandum _ Eingabekonfiguration mit Python
Python
ABC-Memorandum [ABC163 C --managementr] (Python)
Python-Anfänger-Memorandum-Funktion
Memorandum @ Python ODER Seminar: matplotlib
[Python] Memorandum zur Vermeidung von SQLAlchemy-Fehlern
Memorandum über Korrelation [Python]
Memorandum @ Python ODER Seminar: Pulp
Ein Memorandum über den Python-Mock
Memorandum @ Python ODER Seminar: Pandas
[Python] Memorandum über zufällige Generationen
Memorandum @ Python ODER Seminar: Scikit-Learn
Python-Memorandum zur parallelen / asynchronen Ausführung
ABC-Memorandum [ABC159 C - Maximales Volumen] (Python)
Python pywin32 (win32com) Excel-Memorandum
[Python] Ein Memorandum der schönen Suppe4
Python Dict Object Memorandum (mysteriöses Dokument)
ABC-Memorandum [ABC161 C - Integer ersetzen] (Python)
PIL-Installationsmemorandum (Python Imaging Library)
ABC-Memorandum [ABC158 C - Steuererhöhung] (Python)
Anfänger Memorandum Python "isdigit" Bewegung
Matplotlib Memorandum
Kafka Python
Linux Memorandum
Python-Grundlagen ⑤
Eingebaute Python