Wie vereinfacht man die Verwendung von pathlib-Objekten, um mit Funktionen zu arbeiten, die nach Zeichenfolgen suchen

9

Ich mag die Verwendung von pathlib für die Pfadverwaltung in Python, aber der Nachteil dieses Pakets besteht darin, dass viele Befehle wie shutil.copy , .move , builtin open benötigt eine Zeichenfolge und kein PosixPath-Objekt, das als Fehler

angegeben wird %Vor%

Die logische Lösung ist natürlich die Verwendung von str() .

Meine Frage ist, wie wäre es möglich (wenn es sein würde), pathlib-Objekte so zu ändern, dass ein Aufruf wie open(pathlib.PosixPath) ohne die Verwendung von str() funktionieren würde.

    
Pierpaolo 06.06.2015, 02:27
quelle

2 Antworten

5

Die Antwort von @Navith ist, was Sie jetzt in Python 3.4 tun sollten. Allerdings wird PEP-519 in Python 3.6 vorgeschlagen und akzeptiert, um dieses Problem zu beheben.

>
  

Dieser PEP schlägt ein Protokoll für Klassen vor, die einen Dateisystempfad darstellen, um eine Str- oder Byte-Repräsentation bereitstellen zu können. Änderungen an der Python-Standardbibliothek werden ebenfalls vorgeschlagen, um dieses Protokoll gegebenenfalls zu verwenden , um die Verwendung von Pfadobjekten zu erleichtern, bei denen in der Vergangenheit nur Str- und / oder Byte-Dateisystempfade akzeptiert werden.

In Python 3.6 akzeptieren also die Standard-Bibliotheksmethoden, auf die Sie sich beziehen nun Pfade , und Die Antwort auf Ihre Frage ist Python 3.6 verwenden.

    
Mr_and_Mrs_D 22.03.2017 20:21
quelle
4

Path Objekte haben open , rmdir , chmod , ... Methoden, die so funktionieren, wie Sie es erwarten.

%Vor%     
Navith 06.06.2015 02:38
quelle

Tags und Links