Como identificar se um arquivo é um arquivo ou diretório normal usando python


129

Como você verifica se um arquivo é um arquivo normal ou um diretório usando python?

Respostas:



36

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 Falsese o arquivo não existir, portanto, você provavelmente desejará verificar os.path.exists()também.


10

O Python 3.4 introduziu o pathlibmó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.



2

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


2

tente isto:

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

-1

Se você está apenas percorrendo um conjunto de diretórios, pode ser melhor tentar os.chdire 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))
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.