Wie prüfe ich, ob eine Datei existiert oder nicht, ohne die try
Aussage?
@j6m8 ja, isReadableFile(path,fileName)
wird zurückgegeben True
ob die Datei für den Prozess erreichbar und lesbar ist \program\thread
Wie prüfe ich, ob eine Datei existiert oder nicht, ohne die try
Aussage?
import os.path
def isReadableFile(file_path, file_name):
full_path = file_path + "/" + file_name
try:
if not os.path.exists(file_path):
print "File path is invalid."
return False
elif not os.path.isfile(full_path):
print "File does not exist."
return False
elif not os.access(full_path, os.R_OK):
print "File cannot be read."
return False
else:
print "File can be read."
return True
except IOError as ex:
print "I/O error({0}): {1}".format(ex.errno, ex.strerror)
except Error as ex:
print "Error({0}): {1}".format(ex.errno, ex.strerror)
return False
#------------------------------------------------------
path = "/usr/khaled/documents/puzzles"
fileName = "puzzle_1.txt"
isReadableFile(path, fileName)
existiert() y is_file() Methoden der ' Pfad Objekt kann verwendet werden, um zu prüfen, ob ein bestimmter Pfad existiert und eine Datei ist.
Python 3-Programm zur Überprüfung, ob eine Datei existiert:
# File name: check-if-file-exists.py
from pathlib import Path
filePath = Path(input("Enter path of the file to be found: "))
if filePath.exists() and filePath.is_file():
print("Success: File exists")
else:
print("Error: File does not exist")
Ausgabe:
$ python3 check-if-file-exists.py
Geben Sie den Pfad der zu suchenden Datei ein: /Benutzer/macuser1/stack-overflow/index.html
Erfolg: Datei existiert
$ python3 check-if-file-exists.py
Geben Sie den Pfad der zu suchenden Datei ein: hghjg jghj
Fehler: Die Datei existiert nicht
Utilice os.path.exists() um zu prüfen, ob die Datei existiert oder nicht:
def fileAtLocation(filename,path):
return os.path.exists(path + filename)
filename="dummy.txt"
path = "/home/ie/SachinSaga/scripts/subscription_unit_reader_file/"
if fileAtLocation(filename,path):
print('file found at location..')
else:
print('file not found at location..')
Gibt es eine Erklärung dafür, warum diese Antwort heruntergestuft wurde? Ist os.path.exists() keine Lösung?
@YashNag aus einer anderen Antwort : Im Gegensatz zu isfile()
, exists()
gibt bei Verzeichnissen True zurück.
Dies ist in der Regel, was Sie wollen, nicht isfile, da die Frage "existiert eine Datei" ist in der Regel wirklich fragen, ob ein Pfad existiert, nicht ob es eine Datei ist. Bitte hören Sie auf, nützliche Informationen herabzuwürdigen.
Dies ist in zweierlei Hinsicht falsch: (1) os.walk
alle Dateien unter einem Verzeichnisbaum zu finden -- wenn der Benutzer nach ./FILE
ist es unwahrscheinlich, dass er eine solche Behandlung durchführen will. ./some/sub/folder/FILE
als Übereinstimmung, was Ihre Lösung tut; und (2) Ihre Lösung ist sehr ineffizient im Vergleich zu einer einfachen os.path.isfile()
aufrufen, wenn sich viele Dateien unterhalb des aktuellen Verzeichnisses befinden. In dem Fall, dass kein passender Dateiname-ohne-Pfad innerhalb des Baums existiert, wird Ihr Code jede einzelne Datei im Baum aufzählen, bevor er false zurückgibt.
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.
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üfenexists
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/