symbian-qemu-0.9.1-12/python-win32-2.6.1/Tools/Scripts/byteyears.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 #! /usr/bin/env python
       
     2 
       
     3 # Print the product of age and size of each file, in suitable units.
       
     4 #
       
     5 # Usage: byteyears [ -a | -m | -c ] file ...
       
     6 #
       
     7 # Options -[amc] select atime, mtime (default) or ctime as age.
       
     8 
       
     9 import sys, os, time
       
    10 from stat import *
       
    11 
       
    12 def main():
       
    13 
       
    14     # Use lstat() to stat files if it exists, else stat()
       
    15     try:
       
    16         statfunc = os.lstat
       
    17     except AttributeError:
       
    18         statfunc = os.stat
       
    19 
       
    20     # Parse options
       
    21     if sys.argv[1] == '-m':
       
    22         itime = ST_MTIME
       
    23         del sys.argv[1]
       
    24     elif sys.argv[1] == '-c':
       
    25         itime = ST_CTIME
       
    26         del sys.argv[1]
       
    27     elif sys.argv[1] == '-a':
       
    28         itime = ST_CTIME
       
    29         del sys.argv[1]
       
    30     else:
       
    31         itime = ST_MTIME
       
    32 
       
    33     secs_per_year = 365.0 * 24.0 * 3600.0   # Scale factor
       
    34     now = time.time()                       # Current time, for age computations
       
    35     status = 0                              # Exit status, set to 1 on errors
       
    36 
       
    37     # Compute max file name length
       
    38     maxlen = 1
       
    39     for filename in sys.argv[1:]:
       
    40         maxlen = max(maxlen, len(filename))
       
    41 
       
    42     # Process each argument in turn
       
    43     for filename in sys.argv[1:]:
       
    44         try:
       
    45             st = statfunc(filename)
       
    46         except os.error, msg:
       
    47             sys.stderr.write("can't stat %r: %r\n" % (filename, msg))
       
    48             status = 1
       
    49             st = ()
       
    50         if st:
       
    51             anytime = st[itime]
       
    52             size = st[ST_SIZE]
       
    53             age = now - anytime
       
    54             byteyears = float(size) * float(age) / secs_per_year
       
    55             print filename.ljust(maxlen),
       
    56             print repr(int(byteyears)).rjust(8)
       
    57 
       
    58     sys.exit(status)
       
    59 
       
    60 if __name__ == '__main__':
       
    61     main()