#! /usr/bin/env python3# 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, timefrom stat import *def main():# Use lstat() to stat files if it exists, else stat()try:statfunc = os.lstatexcept AttributeError:statfunc = os.stat# Parse optionsif sys.argv[1] == '-m':itime = ST_MTIMEdel sys.argv[1]elif sys.argv[1] == '-c':itime = ST_CTIMEdel sys.argv[1]elif sys.argv[1] == '-a':itime = ST_CTIMEdel sys.argv[1]else:itime = ST_MTIMEsecs_per_year = 365.0 * 24.0 * 3600.0 # Scale factornow = time.time() # Current time, for age computationsstatus = 0 # Exit status, set to 1 on errors# Compute max file name lengthmaxlen = 1for filename in sys.argv[1:]:maxlen = max(maxlen, len(filename))# Process each argument in turnfor filename in sys.argv[1:]:try:st = statfunc(filename)except OSError as msg:sys.stderr.write("can't stat %r: %r\n" % (filename, msg))status = 1st = ()if st:anytime = st[itime]size = st[ST_SIZE]age = now - anytimebyteyears = float(size) * float(age) / secs_per_yearprint(filename.ljust(maxlen), end=' ')print(repr(int(byteyears)).rjust(8))sys.exit(status)if __name__ == '__main__':main()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。