Ich bin sehr neu in python
und habe gerade Eric6
installiert. Ich möchte einen Ordner (und alle Unterverzeichnisse) durchsuchen, um den Dateinamen einer Datei mit der Erweiterung .pdf
zu drucken Syntax, aber es sagt falsch
Das Debugging-Programm hat die Exception unbehandelt FileNotFoundError
ausgelöst "[WinError 3] Das System kann den angegebenen Pfad 'C:'"
nicht finden Datei: C: \ Benutzer \ pcuser \ EricDocs \ Test.py, Zeile: 6
Und das ist die Syntax, die ich ausführen möchte:
%Vor% Verwenden Sie das Modul glob
.
%Vor%Das glob-Modul findet alle Pfadnamen, die einem bestimmten Muster entsprechen
Dies funktioniert auf Windows- und * nix-Plattformen.
Stellen Sie nur sicher, dass Ihr Pfad unter Windows vollständig maskiert ist. Es könnte nützlich sein, eine rohe Zeichenfolge zu verwenden.
In Ihrem Fall wäre das:
%Vor%Für nur eine Liste von Dateinamen (nicht vollständige Pfade, wie in Ihrem Kommentar) können Sie dieses Einzeiler tun:
%Vor%Im Moment suchen Sie jede Zeichenkette innerhalb der Variablen von testdir.
Es wird also der Ordner nach den Werten "C", ":", "\", "T" usw. durchsucht. Sie sollten auch Ihren Escape-Charakter wie "C: \ ... \ ... \ "
Sie sollten wahrscheinlich stattdessen os.listdir (testdir) verwenden.
Versuchen Sie, Ihr Python-Skript von C:
auszuführen. Von der Eingabeaufforderung aus könnten Sie dies tun:
Wie von Tony Babarino erwähnt, verwenden Sie r"C:\Test"
anstelle von "C:\Test"
in Ihrem Code.
Es gibt ein paar Probleme in Ihrem Code, schauen Sie sich an, wie ich es unten geändert habe:
%Vor% Beachten Sie, dass ich Ihren Pfadnamen nicht erkannt und Ihre erste if folder...
entfernt habe. Das hat die Ordner nicht wie erwartet erhalten, sondern stattdessen ein Zeichen des Pfadstrings einzeln ausgewählt.
Sie müssen den Code ändern, damit er alle Ordner durchsucht. Dies ist derzeit nicht möglich. Sehen Sie sich das Modul glob an.
Versuchen Sie testdir = r"C:\Test"
anstelle von testdir = "C:\Test"
. In Python müssen Sie Sonderzeichen wie zum Beispiel \
fliehen. Sie können ihnen auch mit dem Symbol '\' entkommen, also wäre es "C:\Test"
. Indem Sie r"C:\Test"
verwenden, weisen Sie Python an, die rohe Zeichenkette zu verwenden.
Auch for folder in testdir:
line macht keinen Sinn, weil testdir
eine Zeichenkette ist. Sie versuchen also im Grunde, über eine Zeichenkette zu iterieren.
Tags und Links python python-3.x