import sys
import os
import os.path
def walk_tree(path):
#    print path
    for rt, ds, fs in os.walk(path):
        for f in fs:
            fn = os.path.join(rt, f)
            if os.path.isfile(fn):
#            yield os.getmtime(fn), fn
                yield os.path.basename(fn), os.path.getsize(fn), os.path.getmtime(fn),fn
def walk_dirs(path):
    for rt, ds, fs in os.walk(path):
        for d in ds:
#            print d
            dn = os.path.join(rt, d)
            if os.path.isdir(dn):
                yield dn
#            yield os.getmtime(fn), fn
#                yield os.path.basename(fn), os.path.getsize(fn), os.path.getmtime(fn),fn
#print sys.argv[1:]
def listing(path):
    childs=[os.path.join(path,x) for x in os.listdir(path)]
    dirs=[x for x in childs if os.path.isdir(x)]
#    dirs=walk_dirs(path)
    for d in dirs:
#        print d
    #    print "======================================"
    #    print d
        total=sum([x[1] for x in walk_tree(d)])
        yield path,os.path.dirname(d),d,total
#        yield path,os.path.dirname(d),d,total
from operator import itemgetter, attrgetter
ss=sorted(listing(sys.argv[1]),reverse=True,key=itemgetter(3))
for s in ss[:4]:
    print "\t".join([str(s)])
#    raw_input();
##for param in sys.argv[1:]:
##    print param
##    foo=listing(param)
##
##    print "========="
##
##    bigdirsize={}
##    smalldirsize={}
##    for f in foo:
##        print f
##        if f[0] in bigdirsize:
##            bigdirsize[f[0]] += f[3]
##        else:
##            bigdirsize[f[0]] = f[3]
##        if f[0] in smalldirsize:
##            smalldirsize[f[1]] += f[3]
##        else:
##            smalldirsize[f[1]] = f[3]
##
##    for b in bigdirsize.keys():
##        print b,bigdirsize[b]
##    print "=========="
###    for b in smalldirsize.keys():
###        print b,smalldirsize[b]
##
#asdf=raw_input()
#print "asdf"
#
#
#
##def keyfunc(x):
##    return x[0]
#
#from itertools import groupby
#
#groups = []
#uniquekeys = []
#totalsize={}
##data = sorted(foo, key=keyfunc)
#for k, g in groupby(foo, lambda (x): x[0]):
#    groups.append(list(g))      # Store group iterator as a list
#    uniquekeys.append(k)
#
#
#for g in groups:
#    total=0.1
#    name=0.0
#    for gg in g:
#        name=gg[0]
#        total+=gg[2]
#    foo=[]
#    for gg in g:
#        foo.append([int(100 * gg[2]/total),gg[2]/1024/1024,gg[0],gg[1]])
#
#    s=sorted(foo,reverse=True)
#    perc=0
#    for element in s:
#        perc+=element[0]
#        print "\t".join([str(x) for x in element])
#        if perc > 80 or element[0]<5: break
#    print
##    print s
#
#
##        print gg[0],
##        print gg
##    print "\n\n"
##    print name,total
#
##for k in uniquekeys:
##    print k
#
##for g in groups:
##    print "----------------------"
##    print g[0][0],
##    print sum([x[2] for x in g ])
###    print len(g)
##    for item in groups:
##        print item
##for u in uniquekeys:
##    print u
#
#
#
#
##    foo=raw_input()
##    for f in walk_tree(d):
##        print f,
##    print walk_tree(d)
##x=walk_tree(sys.argv[1:][0])
##for y in x:
##    print y
##for x in walk_tree(sys.argv[1:]):
##    print x[0],x[1]
Tuesday, July 27, 2010
Tuesday, July 13, 2010
pmail
import sys, smtplib
fromaddr = raw_input("From: ")
toaddrs = raw_input("To: ").split(',')
print "Enter message, end with ^D:"
msg = ''
while True:
line = sys.stdin.readline()
if not line:
break
msg += line
# The actual mail send
server = smtplib.SMTP('localhost')
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
fromaddr = raw_input("From: ")
toaddrs = raw_input("To: ").split(',')
print "Enter message, end with ^D:"
msg = ''
while True:
line = sys.stdin.readline()
if not line:
break
msg += line
# The actual mail send
server = smtplib.SMTP('localhost')
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
mbox_from
import mailbox
import email
mbox = mailbox.PortableUnixMailbox(open(filename, 'rU'), email.message_from_file)
for msg in mbox:
from = msg['From']
print from
import email
mbox = mailbox.PortableUnixMailbox(open(filename, 'rU'), email.message_from_file)
for msg in mbox:
from = msg['From']
print from
Thursday, July 8, 2010
columnate
#!/usr/bin/awk  -f
BEGIN{FS="\t";}
{
line[NR] = $0 # saves the line
for (f=1; f<=NF; f++) {
len = length($f)
if (len>max[f])
max[f] = len # an array of maximum field widths
}
}
END {
for(nr=1; nr<=NR; nr++) {
nf = split(line[nr], fields)
for (f=1; f
print fields[f] # the last field need not be padded
}
}
BEGIN{FS="\t";}
{
line[NR] = $0 # saves the line
for (f=1; f<=NF; f++) {
len = length($f)
if (len>max[f])
max[f] = len # an array of maximum field widths
}
}
END {
for(nr=1; nr<=NR; nr++) {
nf = split(line[nr], fields)
for (f=1; f
print fields[f] # the last field need not be padded
}
}
Subscribe to:
Comments (Atom)
