Mercurial > cpython-lru_cache-weakref
view Tools/scripts/byteyears.py @ 53364:00a927815dcd 2.6
Merged revisions 71847 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r71847 | thomas.heller | 2009-04-24 22:00:41 +0200 (Fr, 24 Apr 2009) | 2 lines
Issue 5041: ctypes unwilling to allow pickling wide character.
........
| author | Thomas Heller <theller@ctypes.org> |
|---|---|
| date | Fri, 24 Apr 2009 20:18:22 +0000 |
| parents | 981fff7363b9 |
| children | 6b18a095c2e7 |
line wrap: on
line source
#! /usr/bin/env python # Print the product of age and size of each file, in suitable units. # # Usage: byteyears [ -a | -m | -c ] file ... # # Options -[amc] select atime, mtime (default) or ctime as age. import sys, os, time from stat import * def main(): # Use lstat() to stat files if it exists, else stat() try: statfunc = os.lstat except AttributeError: statfunc = os.stat # Parse options if sys.argv[1] == '-m': itime = ST_MTIME del sys.argv[1] elif sys.argv[1] == '-c': itime = ST_CTIME del sys.argv[1] elif sys.argv[1] == '-a': itime = ST_CTIME del sys.argv[1] else: itime = ST_MTIME secs_per_year = 365.0 * 24.0 * 3600.0 # Scale factor now = time.time() # Current time, for age computations status = 0 # Exit status, set to 1 on errors # Compute max file name length maxlen = 1 for filename in sys.argv[1:]: maxlen = max(maxlen, len(filename)) # Process each argument in turn for filename in sys.argv[1:]: try: st = statfunc(filename) except os.error, msg: sys.stderr.write("can't stat %r: %r\n" % (filename, msg)) status = 1 st = () if st: anytime = st[itime] size = st[ST_SIZE] age = now - anytime byteyears = float(size) * float(age) / secs_per_year print filename.ljust(maxlen), print repr(int(byteyears)).rjust(8) sys.exit(status) if __name__ == '__main__': main()
