-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathls.py
executable file
·50 lines (44 loc) · 1.46 KB
/
ls.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import os, sys
from stat import *
from datetime import datetime
from pwd import getpwuid
def getKey(item):
return item[1]
def syntaxChange(size):
sizes = [' B','KB','MB','TB']
for item in sizes:
if size < 1024:
return "%4d%s" % (size, item)
size = size/1024
return size
def main():
cwd = os.getcwd()
if(len(sys.argv) == 1):
for f in os.listdir(cwd):
print(f)
elif (len(sys.argv) == 2) and (sys.argv[1] == "-t"):
fileList = []
for f in os.listdir(cwd):
fileList.append([f,os.path.getmtime(f)])
fileList = sorted(fileList, key=getKey, reverse=True)
for item in fileList:
print(item[0])
elif (len(sys.argv) == 2) and (sys.argv[1] == "-l"):
for f in os.listdir(cwd):
# get last modified date
modifiedDate = datetime.fromtimestamp(os.path.getmtime(f))
# find owner
owner = getpwuid(os.stat(f).st_uid).pw_name
# find group
group = getpwuid(os.stat(f).st_gid).pw_name
# get file size
size = os.stat(f).st_size
size = syntaxChange(size)
print(owner + " " + group + " ", end = '')
print(size, end = '')
print(" ",end = '')
print(modifiedDate,end = '')
print(" ",end = '')
print(f)
if __name__ == "__main__":
main()