mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	(with one small bugfix in bgen/bgen/scantools.py) This replaces string module functions with string methods for the stuff in the Tools directory. Several uses of string.letters etc. are still remaining.
		
			
				
	
	
		
			56 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
#! /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 *
 | 
						|
 | 
						|
# 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 file in sys.argv[1:]:
 | 
						|
    if len(file) > maxlen: maxlen = len(file)
 | 
						|
 | 
						|
# Process each argument in turn
 | 
						|
for file in sys.argv[1:]:
 | 
						|
    try:
 | 
						|
        st = statfunc(file)
 | 
						|
    except os.error, msg:
 | 
						|
        sys.stderr.write('can\'t stat ' + `file` + ': ' + `msg` + '\n')
 | 
						|
        status = 1
 | 
						|
        st = ()
 | 
						|
    if st:
 | 
						|
        anytime = st[itime]
 | 
						|
        size = st[ST_SIZE]
 | 
						|
        age = now - anytime
 | 
						|
        byteyears = float(size) * float(age) / secs_per_year
 | 
						|
        print file.ljust(maxlen),
 | 
						|
        print repr(int(byteyears)).rjust(8)
 | 
						|
 | 
						|
sys.exit(status)
 |