如何使用python识别文件是普通文件还是目录

时间:2009-06-05 13:47:31

标签: python

如何使用python检查文件是普通文件还是目录?

8 个答案:

答案 0 :(得分:150)

os.path.isdir()os.path.isfile()可以为您提供所需内容。看到: http://docs.python.org/library/os.path.html

答案 1 :(得分:33)

正如其他答案所说,os.path.isdir()os.path.isfile()是你想要的。但是,您需要记住,这些并不是唯一的两种情况。例如,使用os.path.islink()作为符号链接。此外,如果文件不存在,这些都会返回False,因此您可能也想查看os.path.exists()

答案 2 :(得分:9)

import os

if os.path.isdir(d):
    print "dir"
else:
    print "file"

答案 3 :(得分:6)

Python 3.4将the pathlib module引入标准库,该库提供了一种面向对象的方法来处理文件系统路径。相关方法是.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也可以通过the pathlib2 module on PyPi.

在Python 2.7上使用

答案 4 :(得分:4)

试试这个:

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

答案 5 :(得分:3)

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

答案 6 :(得分:0)

如果您只是单步执行一组目录,那么最好只是尝试os.chdir并在失败时发出错误/警告:

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))

答案 7 :(得分:0)

要检查是否 文件/目录是否存在

os.path.exists(<path>)

要检查是否 路径是目录

os.path.isdir(<path>)

要检查是否 路径是文件

os.path.isfile(<path>)