Advertisement
Guest User

lab6_buraki_i_ziemniaki

a guest
Jan 18th, 2020
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. import argparse
  2. import sys
  3. import os
  4. import stat
  5. from pwd import getpwuid
  6. from datetime import datetime
  7. parser = argparse.ArgumentParser()
  8. parser.add_argument('-l',
  9. dest='long',
  10. action='store_true')
  11. parser.add_argument('-L',
  12. dest='owner',
  13. action='store_true')
  14. arg = parser.parse_args(['-l','-L'])
  15. areArgTrue = 0
  16. if arg.long:
  17. areArgTrue+=1
  18. if arg.owner:
  19. areArgTrue+=1
  20.  
  21. def permissions_to_unix_name(st):
  22. is_dir = 'd' if stat.S_ISDIR(st.st_mode) else '-'
  23. dic = {'7':'rwx', '6' :'rw-', '5' : 'r-x', '4':'r--', '0': '---'}
  24. perm = str(oct(st.st_mode)[-3:])
  25. return is_dir + ''.join(dic.get(x,x) for x in perm)
  26.  
  27. if len(sys.argv) is 1+areArgTrue:
  28. cwd = os.getcwd()
  29. else:
  30. for args in sys.argv[1:]:
  31. if args not in ('-l',"-L"):
  32. cwd = args
  33.  
  34. for file in sorted(os.listdir(cwd)):
  35. if arg.long or arg.owner:
  36. info = os.stat(cwd+"/"+file)
  37. printstuff = file
  38. if arg.long:
  39. printstuff+=str(info.st_size).rjust(30-len(file))
  40. printstuff+=datetime.strftime(datetime.fromtimestamp(info.st_mtime),
  41. "%Y-%m-%d %H:%M:%S").rjust(30)
  42. printstuff+=permissions_to_unix_name(info).rjust(30)
  43.  
  44. if arg.owner:
  45. printstuff+= str(getpwuid(info.st_uid).pw_name).rjust(20)
  46. print(printstuff)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement