##language:zh
---- ZoomQuiet [<<DateTime(2005-02-04T06:51:15Z)>>]
'''获得外部文件信息'''

 * 通过一些Python 模块,可以方便的获得即有文件的信息;
 * 获得基础信息使用 "os" 模块中的 "stat" 模块:{{{#!python 
    import os
    import stat
    import time

    fileStats = os.stat ( 'test.txt' )
    fileInfo = {
       'Size' : fileStats [ stat.ST_SIZE ],
       'LastModified' : time.ctime ( fileStats [ stat.ST_MTIME ] ),
       'LastAccessed' : time.ctime ( fileStats [ stat.ST_ATIME ] ),
       'CreationTime' : time.ctime ( fileStats [ stat.ST_CTIME ] ),
       'Mode' : fileStats [ stat.ST_MODE ]
    }
    for infoField, infoValue in fileInfo.items():
       print infoField, ':' + infoValue
    if stat.S_ISDIR ( fileStats [ stat.ST_MODE ] ):
       print '是目录 Directory. '
    else:
       print '非目录 Non-directory.' 
       }}}
       * 以上示例,创建了一个字典来记录文件的各种信息,也同时汇报是否为目录
       * 我们也可进一步获取文件其它信息: {{{#!python
    import os
    import stat
    fileStats = os.stat ( 'test.txt' )
    fileMode = fileStats [ stat.ST_MODE ]
    if stat.S_ISREG ( fileStats [ stat.ST_MODE ] ):
       print '乃规则的数据文件 Regular file.'
    elif stat.S_ISDIR ( fileSTats [ stat.ST_MODe ] ):
       print '乃目录 Directory.'
    elif stat.S_ISLNK ( fileSTats [ stat.ST_MODe ] ):
       print '乃文件链接 Shortcut.'
    elif stat.S_ISSOCK ( fileSTats [ stat.ST_MODe ] ):
       print '乃 Socket.'
    elif stat.S_ISFIFO ( fileSTats [ stat.ST_MODe ] ):
       print '乃通道 Named pipe.'
    elif stat.S_ISBLK ( fileSTats [ stat.ST_MODe ] ):
       print '乃块设备 Block special device.'
    elif stat.S_ISCHR ( fileSTats [ stat.ST_MODe ] ):
       print '乃字符设备 Character special device.' 
       }}}
      

 * 另外我们可以使用 "os.path" 模块收集其它信息:{{{#!python
    import os.path
    fileStats = 'test.txt'
    if os.path.isdir ( fileStats ):
       print 'Directory.'
    elif os.path.isfile ( fileStats ):
       print 'File.'
    elif os.path.islink ( fileStats ):
       print 'Shortcut.'
    elif os.path.ismount ( fileStats ):
       print 'Mount point.' 
       }}}