import os.path as path from subprocess import call import glob import magic m= magic.Magic() def walkf(arg, dirname, files): for fn in files: if path.isfile(dirname+"/"+fn): flist.append(dirname+"/"+fn) for i in range(150,-1, -1): print "i=", i fl = filter(path.isdir, glob.glob("*")) if len(fl)>1: print "too many dirs" break fd = fl[0] print "fd=", fd call(["mv", fd, "tmp"]) flist = [] path.walk("tmp", walkf, None) print flist if len(flist)>1: print "too many files" f= flist[0] print f call(["mv", f, "x"]) call(["rm", "-fr", "tmp"]) fm = m.id_filename("x") print "magic", fm call(["7z", "x", "x"]) if path.exists("x~"): if "tar" in m.id_filename("x~"): call(["tar", "xf", "x~"]) call(['rm', "x~"]) else: "????" break m.close() path.walk?