""" Same as the other script, but attempts to preserve the same folder structure in `csv` as it exists in `xlsx` """ from csv import writer from glob import glob from os.path import basename, dirname, join from os import makedirs from xlrd import open_workbook import re CSV_DIRNAME = 'csv' XLS_DIRNAME = 'xlsx' for xfname in glob(join(XLS_DIRNAME, '*', '*.xlsx')): cdir = re.sub(r'^' + XLS_DIRNAME, CSV_DIRNAME, dirname(xfname)) makedirs(cdir, exist_ok=True) cname = join(cdir, basename(xfname) + '.csv') print("writing to", cname) cf = open(cname, 'w') cv = writer(cf) book = open_workbook(xfname) sheet = book.sheets()[0] for n in range(sheet.nrows): rowvals = sheet.row_values(n) cv.writerow(rowvals) cf.close()