import os
import os.path
import csv
import stat
import pwd
import grp
import sys
import datetime

ospathjoin = os.path.join
osstat = os.stat

def output_csv(rootdir):
    for root, sub_folders, files in os.walk(rootdir):
        try:
            size = atime = mtime = ctime = 0
            for fname in files:

                path = ospathjoin(root, fname)
                if not os.path.isfile(path):
                    continue
                fstat = osstat(path)

                mode = oct(fstat[stat.ST_MODE])[-3:]
                uid = fstat.st_uid
                gid = fstat.st_gid

                try:
                        user = pwd.getpwuid(uid)[0]
                        group = grp.getgrgid(gid)[0]
                except: 
                        user = uid
                        group = group

                size = fstat.st_size
                atime = datetime.datetime.fromtimestamp(int(fstat.st_atime)).strftime('%Y-%m-%d %H:%M:%S')
                mtime = datetime.datetime.fromtimestamp(int(fstat.st_mtime)).strftime('%Y-%m-%d %H:%M:%S')
                ctime = datetime.datetime.fromtimestamp(int(fstat.st_ctime)).strftime('%Y-%m-%d %H:%M:%S')

                yield ctime, mtime, atime, mode, user, group, path
        except Exception, e:
                print >>sys.stderr, 'Error: %r, %s' % (path, e)

csv_writer = csv.writer(sys.stdout)

rootdir = '/'
for a in  output_csv(rootdir):
    csv_writer.writerow(a)