Como você verifica se um arquivo é um arquivo normal ou um diretório usando python?
os.path.isdir()
e os.path.isfile()
deve dar o que você quer. Veja:
http://docs.python.org/library/os.path.html
Como outras respostas disseram, os.path.isdir()
e os.path.isfile()
é o que você deseja. No entanto, você deve ter em mente que esses não são os únicos dois casos. Use os.path.islink()
para links simbólicos, por exemplo. Além disso, todos eles retornam False
se o arquivo não existir, portanto, você provavelmente desejará verificar os.path.exists()
também.
O Python 3.4 introduziu o pathlib
módulo na biblioteca padrão, que fornece uma abordagem orientada a objetos para lidar com os caminhos do sistema de arquivos. Os métodos relevantes seriam .is_file()
e .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
O Pathlib também está disponível no Python 2.7 através do módulo pathlib2 no PyPi.
os.path.isdir('string')
os.path.isfile('string')
tente isto:
import os.path
if os.path.isdir("path/to/your/file"):
print "it's a directory"
else:
print "it's a file"
Se você está apenas percorrendo um conjunto de diretórios, pode ser melhor tentar os.chdir
e fornecer um erro / aviso se ele falhar:
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))