7118 Stimmen

Wie kann ich überprüfen, ob eine Datei ohne Ausnahmen existiert?

Wie prüfe ich, ob eine Datei existiert oder nicht, ohne die try Aussage?

16 Stimmen

Um zu prüfen, ob ein Path-Objekt existiert, unabhängig davon, ob es sich um eine Datei oder ein Verzeichnis handelt, verwenden Sie my_path.exists() .

1 Stimmen

my_path.exists() ist nicht ausreichend. my_path.is_file() wird Ihnen sagen, ob es sich um eine Datei handelt (könnte zum Lesen gut sein). Aber wenn Sie die Datei erstellen wollen, müssen Sie auch prüfen exists schließen Sie also Verzeichnisse oder andere Dinge im Dateisystem, die keine Dateien sind, aus, die den Fehler verursachen.

0 Stimmen

Verwenden Sie os.path.isfile, um nur Dateien zu prüfen, und verwenden Sie os.path.exists, um sowohl Dateien als auch Verzeichnisse zu prüfen. Mehr dazu erfahren Sie hier: shortbuzz.in/blog/shortbuzz.in/

41voto

zgoda Punkte 12611

Zusätzlich, os.access() :

if os.access("myfile", os.R_OK):
    with open("myfile") as fp:
        return fp.read()

Sein R_OK , W_OK und X_OK die Flags zum Prüfen der Berechtigungen ( doc ).

26voto

Pedro Lobito Punkte 84666
if os.path.isfile(path_to_file):
    try: 
        open(path_to_file)
            pass
    except IOError as e:
        print "Unable to open file"

Das Erheben von Ausnahmen wird als akzeptabel und pythonisch angesehen, Ansatz für die Flusskontrolle in Ihrem Programm. Erwägen Sie die Behandlung fehlender Dateien mit IOErrors zu behandeln. In dieser Situation wird eine IOError-Ausnahme ausgelöst ausgelöst, wenn die Datei zwar existiert, der Benutzer aber keine Leseberechtigung hat.

SRC: http://www.pfinn.net/python-check-if-file-exists.html

6 Stimmen

Der OP fragte, wie man prüfen kann, ob eine Datei existiert. Es ist möglich, dass eine Datei existiert, Sie sie aber nicht öffnen können. Daher ist es nicht korrekt, das Öffnen einer Datei als Ersatz für die Überprüfung der Existenz der Datei zu verwenden: Es wird zu falsch-negativen Ergebnissen führen.

23voto

Ali Hallaji Punkte 2186

Datei oder Verzeichnis auf Existenz prüfen

Sie können diese drei Wege gehen:

Anmerkung1: Die os.path.isfile nur für Dateien verwendet

import os.path
os.path.isfile(filename) # True if file exists
os.path.isfile(dirname) # False if directory exists

Anmerkung2: Die os.path.exists sowohl für Dateien als auch für Verzeichnisse verwendet

import os.path
os.path.exists(filename) # True if file exists
os.path.exists(dirname) #True if directory exists

Le site pathlib.Path Methode (enthalten in Python 3+, installierbar mit pip für Python 2)

from pathlib import Path
Path(filename).exists()

22voto

durjoy Punkte 1619

Wenn Sie NumPy bereits für andere Zwecke importiert haben, ist es nicht notwendig, andere Bibliotheken wie pathlib , os , paths , usw.

import numpy as np
np.DataSource().exists("path/to/your/file")

Je nach Vorhandensein wird hier true oder false zurückgegeben.

20voto

Chris Punkte 1598

Sie können den Vorschlag von Brian ohne die try: .

from contextlib import suppress

with suppress(IOError), open('filename'):
    process()

suppress ist Teil von Python 3.4. In älteren Versionen können Sie schnell Ihr eigenes suppress schreiben:

from contextlib import contextmanager

@contextmanager
def suppress(*exceptions):
    try:
        yield
    except exceptions:
        pass

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X