Advertisement
CleverSnake

xlsbtocsv.py

Apr 3rd, 2019
391
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.12 KB | None | 0 0
  1. #xlsbtocsv.py
  2.  
  3. import csv
  4. import os
  5. import time
  6. import sys
  7. import argparse
  8. from pyxlsb import open_workbook
  9.  
  10. def status(s):
  11.     sys.stdout.write(s + " " * (78 - len(s)) + "\r")
  12.  
  13. # for filename in os.listdir('input'):
  14. parser = argparse.ArgumentParser()
  15. parser.add_argument('filename', type=str)
  16. args = parser.parse_args()
  17. filename = args.filename.split('\\input\\')[1]
  18.  
  19. print("Current file is " + filename)
  20.  
  21. t0 = time.time()
  22.  
  23. with open_workbook('input/'+filename) as wb:
  24.     sheetname = wb.sheets[0]
  25.     with wb.get_sheet(sheetname) as sheet:
  26.         rows = []
  27.         i = 0
  28.         for row in sheet.rows():
  29.             i += 1
  30.             status("Current line is {}".format(i))
  31.             values = [r.v if r.v is not None else '' for r in row]  # retrieving content
  32.             rows.append(values)
  33.             # csv_line = ','.join(values)  # or do your thing
  34.  
  35. print('File opened in {:.2f} seconds.'.format(time.time()-t0))
  36. with open('output/' + filename.rsplit('.', 1)[0]+'.csv', 'w', newline = '') as csvfile:
  37.     csv_writer = csv.writer(csvfile, delimiter = ";")
  38.     for row in rows:
  39.         csv_writer.writerow(row)
  40.  
  41. print('{} took {:.2f} seconds.'.format(filename, time.time()-t0))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement