Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #xlsbtocsv.py
- import csv
- import os
- import time
- import sys
- import argparse
- from pyxlsb import open_workbook
- def status(s):
- sys.stdout.write(s + " " * (78 - len(s)) + "\r")
- # for filename in os.listdir('input'):
- parser = argparse.ArgumentParser()
- parser.add_argument('filename', type=str)
- args = parser.parse_args()
- filename = args.filename.split('\\input\\')[1]
- print("Current file is " + filename)
- t0 = time.time()
- with open_workbook('input/'+filename) as wb:
- sheetname = wb.sheets[0]
- with wb.get_sheet(sheetname) as sheet:
- rows = []
- i = 0
- for row in sheet.rows():
- i += 1
- status("Current line is {}".format(i))
- values = [r.v if r.v is not None else '' for r in row] # retrieving content
- rows.append(values)
- # csv_line = ','.join(values) # or do your thing
- print('File opened in {:.2f} seconds.'.format(time.time()-t0))
- with open('output/' + filename.rsplit('.', 1)[0]+'.csv', 'w', newline = '') as csvfile:
- csv_writer = csv.writer(csvfile, delimiter = ";")
- for row in rows:
- csv_writer.writerow(row)
- print('{} took {:.2f} seconds.'.format(filename, time.time()-t0))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement