So ermitteln Sie mithilfe von Python, ob eine Datei eine normale Datei oder ein normales Verzeichnis ist


129

Wie können Sie mit Python überprüfen, ob eine Datei eine normale Datei oder ein Verzeichnis ist?

Antworten:



36

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, Falsewenn die Datei nicht vorhanden ist. Daher sollten Sie wahrscheinlich auch nachfragen os.path.exists().


9

Python 3.4 führte das pathlibModul 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.



2

os.path.isdir('string')
os.path.isfile('string')


2

Versuche dies:

import os.path
if os.path.isdir("path/to/your/file"):
    print "it's a directory"
else:
    print "it's a file"

-1

Wenn Sie nur eine Reihe von Verzeichnissen durchgehen, ist es möglicherweise besser, nur os.chdireinen 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))
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.