# from http://tools.cherrypy.org/wiki/staticdirindex import os import os.path import datetime import cherrypy def htmldir(section="", dir="", path="", hdr=True, **kwargs): fh = '' url = ( "http://" + cherrypy.request.headers.get('Host', '') + cherrypy.request.path_info ) # preamble if hdr: fh += ( """ Directory listing for: %s """ % url ) path = path.rstrip(r"\/") fh += '

Directory listing for: ' + url + '


\n' for dpath, ddirs, dfiles in os.walk(path): for dn in sorted(ddirs): fdn = os.path.join(dpath, dn) dmtime = os.path.getmtime(fdn) dtim = datetime.datetime.fromtimestamp(dmtime).isoformat('-') fh += """{}/
""".format( dn + '/', dtim, dn, ) del ddirs[:] # limit to one level for fil in sorted(dfiles): fn = os.path.join(dpath, fil) siz = os.path.getsize(fn) fmtime = os.path.getmtime(fn) ftim = datetime.datetime.fromtimestamp(fmtime).isoformat('-') fh += """{}
""".format( fil, ftim, str(siz), fil, ) # postamble if hdr: fh += """ """ return fh