it-swarm.com.de

So finden Sie heraus, ob das Verzeichnis in Python vorhanden ist

Gibt es eine Möglichkeit, im os -Modul in Python herauszufinden, ob ein Verzeichnis existiert?

>>> os.direxists(os.path.join(os.getcwd()), 'new_folder')) # in pseudocode
True/False
992
David542

Sie suchen nach os.path.isdir oder os.path.exists , wenn es Ihnen egal ist, ob es sich um eine Datei oder ein Verzeichnis handelt.

Beispiel:

_import os
print(os.path.isdir("/home/el"))
print(os.path.exists("/home/el/myfile.txt"))
_
1546
phihag

So nah! os.path.isdir gibt True zurück, wenn Sie den Namen eines Verzeichnisses übergeben, das derzeit existiert. Wenn es nicht existiert oder kein Verzeichnis ist, gibt es False zurück.

70
Kirk Strauser

Python 3.4 führte das pathlib -Modul in die Standardbibliothek ein, die einen objektorientierten Ansatz für den Umgang mit Dateisystempfaden bietet:

In [1]: from pathlib import Path

In [2]: p = Path('/usr')

In [3]: p.exists()
Out[3]: True

In [4]: p.is_dir()
Out[4]: True

In [5]: q = p / 'bin' / 'vim'

In [6]: q.exists()
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

46
joelostblom

Ja, benutze os.path.exists() .

32
aganders3

Wir können mit 2 eingebauten Funktionen überprüfen

os.path.isdir("directory")

Es gibt boolean true, wenn das angegebene Verzeichnis verfügbar ist.

os.path.exists("directoryorfile")

Es gibt boolead true, wenn das angegebene Verzeichnis oder die angegebene Datei verfügbar ist.

Um zu überprüfen, ob der Pfad ein Verzeichnis ist;

os.path.isdir("directorypath")

gibt boolean true zurück, wenn der Pfad directory ist

17
Vivek Ananthan
16
RanRag

Wie in:

In [3]: os.path.exists('/d/temp')
Out[3]: True

Vermutlich ein os.path.isdir(...) einwerfen, um sicherzugehen.

10
AlG

Nur um die os.stat -Version (Python 2) bereitzustellen:

import os, stat, errno
def CheckIsDir(directory):
  try:
    return stat.S_ISDIR(os.stat(directory).st_mode)
  except OSError, e:
    if e.errno == errno.ENOENT:
      return False
    raise
8
Tyler A.

os bietet Ihnen viele dieser Funktionen:

import os
os.path.isdir(dir_in) #True/False: check if this is a directory
os.listdir(dir_in)    #gets you a list of all files and directories under dir_in

das listdir löst eine Ausnahme aus, wenn der Eingabepfad ungültig ist.

7
dputros
#You can also check it get help for you

if not os.path.isdir('mydir'):
    print('new directry has been created')
    os.system('mkdir mydir')
5
JoboFive

Es gibt ein praktisches Unipath Modul.

>>> from unipath import Path 
>>>  
>>> Path('/var/log').exists()
True
>>> Path('/var/log').isdir()
True

Andere verwandte Dinge, die Sie benötigen könnten:

>>> Path('/var/log/system.log').parent
Path('/var/log')
>>> Path('/var/log/system.log').ancestor(2)
Path('/var')
>>> Path('/var/log/system.log').listdir()
[Path('/var/foo'), Path('/var/bar')]
>>> (Path('/var/log') + '/system.log').isfile()
True

Sie können es mit pip installieren:

$ pip3 install unipath

Es ähnelt dem eingebauten pathlib. Der Unterschied besteht darin, dass jeder Pfad als Zeichenfolge behandelt wird (Path ist eine Unterklasse der str). Wenn also eine Funktion eine Zeichenfolge erwartet, können Sie ihr problemlos ein Path-Objekt übergeben, ohne sie in eine Zeichenfolge konvertieren zu müssen.

Dies funktioniert beispielsweise hervorragend mit Django und settings.py:

# settings.py
BASE_DIR = Path(__file__).ancestor(2)
STATIC_ROOT = BASE_DIR + '/tmp/static'
2
Max Malysh