2 # Format du output in a tree shape
7 p
= os
.popen('du ' + string
.join(sys
.argv
[1:]), 'r')
9 for line
in p
.readlines():
11 while line
[i
] in '0123456789': i
= i
+1
13 while line
[i
] in ' \t': i
= i
+1
15 comps
= string
.splitfields(file, '/')
16 if comps
[0] == '': comps
[0] = '/'
17 if comps
[len(comps
)-1] == '': del comps
[len(comps
)-1]
18 total
, d
= store(size
, comps
, total
, d
)
21 def store(size
, comps
, total
, d
):
24 if not d
.has_key(comps
[0]):
25 d
[comps
[0]] = None, {}
27 d
[comps
[0]] = store(size
, comps
[1:], t1
, d1
)
30 def display(total
, d
):
33 def show(total
, d
, prefix
):
39 list.append((tsub
, key
))
40 if tsub
is not None: sum = sum + tsub
42 ## list.append((total - sum, os.curdir))
45 width
= len(`
list[0][0]`
)
46 for tsub
, key
in list:
50 print prefix
+ string
.rjust(`tsub`
, width
) + ' ' + key
51 psub
= prefix
+ ' '*(width
-1) + '|' + ' '*(len(key
)+1)
53 show(tsub
, d
[key
][1], psub
)