ZoomQuiet [2005-02-04 06:51:15] 获得外部文件信息

  • 通过一些Python 模块,可以方便的获得即有文件的信息;
  • 获得基础信息使用 "os" 模块中的 "stat" 模块:

       1     import os
       2     import stat
       3     import time
       4 
       5     fileStats = os.stat ( 'test.txt' )
       6     fileInfo = {
       7        'Size' : fileStats [ stat.ST_SIZE ],
       8        'LastModified' : time.ctime ( fileStats [ stat.ST_MTIME ] ),
       9        'LastAccessed' : time.ctime ( fileStats [ stat.ST_ATIME ] ),
      10        'CreationTime' : time.ctime ( fileStats [ stat.ST_CTIME ] ),
      11        'Mode' : fileStats [ stat.ST_MODE ]
      12     }
      13     for infoField, infoValue in fileInfo.items():
      14        print infoField, ':' + infoValue
      15     if stat.S_ISDIR ( fileStats [ stat.ST_MODE ] ):
      16        print '是目录 Directory. '
      17     else:
      18        print '非目录 Non-directory.'
    
    • 以上示例,创建了一个字典来记录文件的各种信息,也同时汇报是否为目录
    • 我们也可进一步获取文件其它信息:

         1     import os
         2     import stat
         3     fileStats = os.stat ( 'test.txt' )
         4     fileMode = fileStats [ stat.ST_MODE ]
         5     if stat.S_ISREG ( fileStats [ stat.ST_MODE ] ):
         6        print '乃规则的数据文件 Regular file.'
         7     elif stat.S_ISDIR ( fileSTats [ stat.ST_MODe ] ):
         8        print '乃目录 Directory.'
         9     elif stat.S_ISLNK ( fileSTats [ stat.ST_MODe ] ):
        10        print '乃文件链接 Shortcut.'
        11     elif stat.S_ISSOCK ( fileSTats [ stat.ST_MODe ] ):
        12        print '乃 Socket.'
        13     elif stat.S_ISFIFO ( fileSTats [ stat.ST_MODe ] ):
        14        print '乃通道 Named pipe.'
        15     elif stat.S_ISBLK ( fileSTats [ stat.ST_MODe ] ):
        16        print '乃块设备 Block special device.'
        17     elif stat.S_ISCHR ( fileSTats [ stat.ST_MODe ] ):
        18        print '乃字符设备 Character special device.'
      
  • 另外我们可以使用 "os.path" 模块收集其它信息:

       1     import os.path
       2     fileStats = 'test.txt'
       3     if os.path.isdir ( fileStats ):
       4        print 'Directory.'
       5     elif os.path.isfile ( fileStats ):
       6        print 'File.'
       7     elif os.path.islink ( fileStats ):
       8        print 'Shortcut.'
       9     elif os.path.ismount ( fileStats ):
      10        print 'Mount point.'