Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import argparse
- import sys
- import os
- import stat
- from pwd import getpwuid
- from datetime import datetime
- parser = argparse.ArgumentParser()
- parser.add_argument('-l',
- dest='long',
- action='store_true')
- parser.add_argument('-L',
- dest='owner',
- action='store_true')
- arg = parser.parse_args(['-l','-L'])
- areArgTrue = 0
- if arg.long:
- areArgTrue+=1
- if arg.owner:
- areArgTrue+=1
- def permissions_to_unix_name(st):
- is_dir = 'd' if stat.S_ISDIR(st.st_mode) else '-'
- dic = {'7':'rwx', '6' :'rw-', '5' : 'r-x', '4':'r--', '0': '---'}
- perm = str(oct(st.st_mode)[-3:])
- return is_dir + ''.join(dic.get(x,x) for x in perm)
- if len(sys.argv) is 1+areArgTrue:
- cwd = os.getcwd()
- else:
- for args in sys.argv[1:]:
- if args not in ('-l',"-L"):
- cwd = args
- for file in sorted(os.listdir(cwd)):
- if arg.long or arg.owner:
- info = os.stat(cwd+"/"+file)
- printstuff = file
- if arg.long:
- printstuff+=str(info.st_size).rjust(30-len(file))
- printstuff+=datetime.strftime(datetime.fromtimestamp(info.st_mtime),
- "%Y-%m-%d %H:%M:%S").rjust(30)
- printstuff+=permissions_to_unix_name(info).rjust(30)
- if arg.owner:
- printstuff+= str(getpwuid(info.st_uid).pw_name).rjust(20)
- print(printstuff)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement