Bir dosyanın normal bir dosya mı yoksa python kullanan bir dizin mi olduğunu nasıl kontrol edersiniz?
Bir dosyanın normal bir dosya mı yoksa python kullanan bir dizin mi olduğunu nasıl kontrol edersiniz?
Yanıtlar:
os.path.isdir()ve os.path.isfile()sana istediğini vermeli. Bakınız:
http://docs.python.org/library/os.path.html
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().
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 .
import os
if os.path.isdir(d):
print "dir"
else:
print "file"
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))