From 5090e3888fd1077d35318216473d1ffb404700ee Mon Sep 17 00:00:00 2001 From: Recolic Keghart <root@recolic.net> Date: Sun, 16 Feb 2020 07:47:24 -0800 Subject: [PATCH] allow PROG ALPHA open xlsx and csv --- main.py | 5 ++--- summerize-part-list/beta2alpha.py | 3 +-- summerize-part-list/xlsx_conv.py | 13 ------------- utils.py | 1 + xlsx_conv.py | 22 ++++++++++++++++++++++ 5 files changed, 26 insertions(+), 18 deletions(-) delete mode 100644 summerize-part-list/xlsx_conv.py create mode 100644 xlsx_conv.py diff --git a/main.py b/main.py index 7883b89..2d94b10 100755 --- a/main.py +++ b/main.py @@ -14,7 +14,7 @@ if os.name == 'nt': from uniqer import * from utils import * import material -import csv_preprocess +import csv_preprocess, xlsx_conv import numpy as np from io import StringIO @@ -36,8 +36,7 @@ def _main(): junk_material_words = ['(厚)', '(宽)', '(å•ä»¶é‡ï¼‰'] junk_part_words = [] - with open(fname, mode='r') as fd: - fcontent = fd.read() + fcontent = xlsx_conv.read_as_csv(fname) fcontent = csv_preprocess.clean_csv(fcontent) fcontent = csv_preprocess.clean_csv_2(fcontent) diff --git a/summerize-part-list/beta2alpha.py b/summerize-part-list/beta2alpha.py index 93f0013..e7270ee 100644 --- a/summerize-part-list/beta2alpha.py +++ b/summerize-part-list/beta2alpha.py @@ -31,8 +31,7 @@ def execute_program_alpha(mypath, parent_arg1): print('EXEC =======================>', args) ret = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - for line in ret.stdout: - print(line) + print(ret.stdout) if ret.returncode != 0: raise RuntimeError('SubProcess returned in status ' + str(ret.returncode)) print('EXEC SUBPROC EXITED =======================>') diff --git a/summerize-part-list/xlsx_conv.py b/summerize-part-list/xlsx_conv.py deleted file mode 100644 index 3afc2f8..0000000 --- a/summerize-part-list/xlsx_conv.py +++ /dev/null @@ -1,13 +0,0 @@ -import xlrd -import csv -import config - -def xlsx2csv(xlsxPath, sheetIndex, outputFd): - wb = xlrd.open_workbook(xlsxPath) - sh = wb.sheet_by_index(sheetIndex) - wr = csv.writer(outputFd, quoting=csv.QUOTE_NONNUMERIC) - - for rownum in range(sh.nrows): - wr.writerow(sh.row_values(rownum)) - - diff --git a/utils.py b/utils.py index 7248425..e9a9ffc 100644 --- a/utils.py +++ b/utils.py @@ -55,3 +55,4 @@ def try_copy(file_path, out_dir, dst = None): shutil.copy(file_path, os.path.join(out_dir, name)) + diff --git a/xlsx_conv.py b/xlsx_conv.py new file mode 100644 index 0000000..3f9b4b5 --- /dev/null +++ b/xlsx_conv.py @@ -0,0 +1,22 @@ +import xlrd +import csv, io + +def xlsx2csv(xlsxPath, sheetIndex, outputFd): + wb = xlrd.open_workbook(xlsxPath) + sh = wb.sheet_by_index(sheetIndex) + wr = csv.writer(outputFd, quoting=csv.QUOTE_NONNUMERIC) + + for rownum in range(sh.nrows): + wr.writerow(sh.row_values(rownum)) + +def read_as_csv(fname): + is_xlsx = lambda fname: fname.endswith('.xlsm') or fname.endswith('.xlsx') or fname.endswith('.xls') or fname.endswith('.XLSM') or fname.endswith('.XLSX') or fname.endswith('.XLS') + # read xlsx or csv + if is_xlsx(fname): + buf = io.StringIO() + xlsx2csv(fname, 0, buf) + return buf.getvalue() + else: + with open(fname, mode='r') as fd: + return fd.read() + -- GitLab