Wie können Sie mit Python überprüfen, ob eine Datei eine normale Datei oder ein Verzeichnis ist?
os.path.isdir()
und os.path.isfile()
sollte dir geben, was du willst. Siehe:
http://docs.python.org/library/os.path.html
Wie andere Antworten gesagt haben os.path.isdir()
und os.path.isfile()
sind, was Sie wollen. Sie müssen jedoch berücksichtigen, dass dies nicht die einzigen beiden Fälle sind. Verwenden Sie os.path.islink()
für Symlinks zum Beispiel. Darüber hinaus werden alle zurückgegeben, False
wenn die Datei nicht vorhanden ist. Daher sollten Sie wahrscheinlich auch nachfragen os.path.exists()
.
Python 3.4 führte das pathlib
Modul in die Standardbibliothek ein, die einen objektorientierten Ansatz für die Verarbeitung von Dateisystempfaden bietet. Die relavanten Methoden wären .is_file()
und .is_dir()
:
In [1]: from pathlib import Path
In [2]: p = Path('/usr')
In [3]: p.is_file()
Out[3]: False
In [4]: p.is_dir()
Out[4]: True
In [5]: q = p / 'bin' / 'vim'
In [6]: q.is_file()
Out[6]: True
In [7]: q.is_dir()
Out[7]: False
Pathlib ist auch in Python 2.7 über das pathlib2-Modul auf PyPi verfügbar.
os.path.isdir('string')
os.path.isfile('string')
Versuche dies:
import os.path
if os.path.isdir("path/to/your/file"):
print "it's a directory"
else:
print "it's a file"
Wenn Sie nur eine Reihe von Verzeichnissen durchgehen, ist es möglicherweise besser, nur os.chdir
einen Fehler / eine Warnung zu geben, wenn dies fehlschlägt:
import os,sys
for DirName in sys.argv[1:]:
SaveDir = os.getcwd()
try:
os.chdir(DirName)
print "Changed to "+DirName
# Do some stuff here in the directory
os.chdir(SaveDir)
except:
sys.stderr.write("%s: WARNING: Cannot change to %s\n" % (sys.argv[0],DirName))