Mercurial > cpython-lru_cache-weakref
view Tools/scripts/byteyears.py @ 60028:030d6bf1d995 3.1
Merged revisions 79434 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r79434 | brian.curtin | 2010-03-25 19:39:56 -0500 (Thu, 25 Mar 2010) | 9 lines
Merged revisions 79430 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r79430 | brian.curtin | 2010-03-25 18:48:54 -0500 (Thu, 25 Mar 2010) | 2 lines
Fix #6538. Markup RegexObject and MatchObject as classes. Patch by Ryan Arana.
........
................
| author | Brian Curtin <brian.curtin@gmail.com> |
|---|---|
| date | Fri, 26 Mar 2010 02:29:25 +0000 |
| parents | 46625e6122e9 |
| children | fcfe324663a6 |
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 as 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), end=' ') print(repr(int(byteyears)).rjust(8)) sys.exit(status) if __name__ == '__main__': main()
