Python kullanarak bir dosyanın normal dosya mı yoksa dizin mi olduğunu belirleme


129

Bir dosyanın normal bir dosya mı yoksa python kullanan bir dizin mi olduğunu nasıl kontrol edersiniz?

Yanıtlar:



36

Diğer cevapların söylediği gibi os.path.isdir()ve os.path.isfile()istediğiniz şey bunlar. Ancak, bunların sadece iki durum olmadığını unutmamalısınız. os.path.islink()Örneğin sembolik bağlantılar için kullanın . Dahası, Falsedosya yoksa bunların tümü geri döner, bu yüzden muhtemelen kontrol etmek isteyeceksiniz os.path.exists().


10

Piton 3.4 kişiye modülü kolu dosya sistemi yolları için bir nesne yönelimli yaklaşım sağlar standart kitaplığı, içine. Relavant yöntemleri olurdu ve :pathlib.is_file().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, PyPi üzerindeki pathlib2 modülü aracılığıyla Python 2.7'de de mevcuttur .



2

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


2

bunu dene:

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

-1

Bir dizi dizinde sadece adım atıyorsanız, os.chdirbaşarısız olursa bir hata / uyarı vermeye çalışmanız daha iyi olabilir :

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))
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.