Überprüfen Sie, ob ein Verzeichnis eine Datei mit einer bestimmten Erweiterung enthält

9

Ich muss das aktuelle Verzeichnis überprüfen und prüfen, ob eine Datei mit einer Erweiterung existiert. Mein Setup wird (normalerweise) nur eine Datei mit dieser Erweiterung haben. Ich muss prüfen, ob diese Datei existiert, und wenn dies der Fall ist, einen Befehl ausführen.

Allerdings wird else mehrmals ausgeführt, da mehrere Dateien mit alternativen Erweiterungen vorhanden sind. Es darf nur else ausführen, wenn die Datei nicht existiert, nicht einmal für jede andere Datei. Mein Codebeispiel ist unten.

Das Verzeichnis ist folgendermaßen aufgebaut:

%Vor%

Wenn ich renne:

%Vor%

Die Ausgabe ist:

%Vor%

Das Problem damit ist, wenn ich print("false") durch etwas Nützliches ersetzt habe, wird es mehrmals ausgeführt.

Bearbeiten: Ich habe diese Frage vor zwei Jahren gestellt, und es sieht immer noch sehr milde Aktivität, deshalb möchte ich dies hier für andere Leute lassen: Ссылка

    
spikespaz 28.10.2015, 20:09
quelle

3 Antworten

12

Sie können den else -Block von for verwenden:

%Vor%

else an for wird immer dann ausgeführt, wenn break in der Schleife nicht ausgeführt wird. Wenn Sie eine for -Schleife als einen Weg betrachten, etwas zu suchen, dann sagt break , ob Sie etwas gefunden haben. % Co_de% wird ausgeführt, wenn Sie nicht gefunden haben, wonach Sie gesucht haben.

Alternativ:

%Vor%

Außerdem können Sie anstelle von else :

das Modul glob verwenden %Vor%     
Bakuriu 28.10.2015, 20:13
quelle
5

Wenn Sie nur überprüfen möchten, ob eine Datei mit einer bestimmten Erweiterung endet, verwenden Sie any .

%Vor%     
Kevin 28.10.2015 20:13
quelle
3

Sie sollten das Modul glob verwenden, um genau nach den Dateien zu suchen, die Sie interessieren in:

%Vor%     
bgporter 28.10.2015 20:16
quelle

Tags und Links