import pyexcel
import glob
import sys
import re
import os
# $ python script.py arg1 [arg2]
# # arg2 optional, arg1 not. arg1 a path to dir or *.csv or specific.csv
# arg2 can be -merged or specfic.xlsx
# if multiple infiles are seen, then if no arg2, each file will result in unique .xlsx
if ( os.path.isdir( sys.argv[1] ) ) :
infiles = glob.glob( sys.argv[1] + '/*.csv' )
elif ( re.search( '.csv' , sys.argv[1] ) ) :
infiles = glob.glob( sys.argv[1] )
else :
sys.exit()
if ( len( sys.argv) > 2 ) :
if ( re.search( '-merged' , sys.argv[2] ) ) :
pyexcel.merge_csv_to_a_book( infiles , 'merged.xlsx' )
elif( re.search( '.xlsx' , sys.argv[2] ) ) :
pyexcel.merge_csv_to_a_book( infiles , sys.argv[2] )
else :
for file in infiles :
pyexcel.merge_csv_to_a_book( [file] , file.replace( '.csv' , '.xlsx' ) )
Tuesday, August 8, 2017
Wednesday, May 17, 2017
A Handy Debugging Tip If You're Using Python
You want to run until a certain condition is satisfied - because, once you get to an advanced level and you're analyzing the 'class' rule, you're up against subtle fails..
python -m pdb SynAnal Square/SquareTokens.xml
> break 115 , rule == 'paramList'
> c
Now, you get straight to the action. Nice?
Check out some Python performance tips here : https://wiki.python.org/moin/PythonSpeed
python -m pdb SynAnal Square/SquareTokens.xml
> break 115 , rule == 'paramList'
> c
Now, you get straight to the action. Nice?
Check out some Python performance tips here : https://wiki.python.org/moin/PythonSpeed
Tuesday, May 9, 2017
Jack Grammar - Only Rules Support * and ? - Not Primitives
After coding, I had to use Excel to see this - rather than comb through my text. The power of visualization..
Part of it is doing a rule using a formula : (in the box, type)
=AND( ISNUMBER(B2), B2 > 1 )
Part of it is doing a rule using a formula : (in the box, type)
=AND( ISNUMBER(B2), B2 > 1 )
class
|
1
|
1
|
1
|
3
|
3
|
1
|
||
class
|
keyword
|
identifier
|
symbol
|
rule
|
rule
|
symbol
|
||
classVarDec
|
1
|
1
|
1
|
3
|
1
|
|||
classVarDec
|
keyword
|
rule
|
identifier
|
rule
|
symbol
|
|||
addlVarDec
|
1
|
1
|
||||||
addlVarDec
|
symbol
|
identifier
|
||||||
type
|
1
|
|||||||
type
|
keyword||identifier
|
|||||||
subroutineDec
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
|
subroutineDec
|
keyword
|
keyword||rule
|
identifier
|
symbol
|
rule
|
symbol
|
rule
|
|
parameterList
|
2
|
|||||||
parameterList
|
rule
|
|||||||
params
|
1
|
3
|
||||||
params
|
rule
|
rule
|
||||||
param
|
1
|
1
|
||||||
param
|
rule
|
identifier
|
||||||
addlParam
|
1
|
1
|
||||||
addlParam
|
symbol
|
identifier
|
||||||
subroutineBody
|
1
|
3
|
1
|
1
|
||||
subroutineBody
|
symbol
|
rule
|
rule
|
symbol
|
||||
varDec
|
1
|
1
|
1
|
3
|
1
|
|||
varDec
|
keyword
|
rule
|
identifier
|
rule
|
symbol
|
|||
statements
|
3
|
|||||||
statements
|
rule
|
|||||||
statement
|
1
|
|||||||
statement
|
rule
|
|||||||
letStatement
|
1
|
1
|
2
|
1
|
1
|
1
|
||
letStatement
|
keyword
|
identifier
|
rule
|
symbol
|
rule
|
symbol
|
||
index
|
1
|
1
|
1
|
|||||
index
|
symbol
|
rule
|
symbol
|
|||||
ifStatement
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
2
|
ifStatement
|
keyword
|
symbol
|
rule
|
symbol
|
symbol
|
rule
|
symbol
|
rule
|
elseBlock
|
1
|
1
|
1
|
1
|
||||
elseBlock
|
keyword
|
symbol
|
rule
|
symbol
|
||||
whileStatement
|
1
|
expression
|
)
|
1
|
1
|
1
|
||
whileStatement
|
keyword
|
symbol
|
rule
|
symbol
|
symbol
|
rule
|
symbol
|
|
doStatement
|
1
|
1
|
1
|
|||||
doStatement
|
keyword
|
rule
|
symbol
|
|||||
returnStatement
|
1
|
2
|
1
|
|||||
returnStatement
|
keyword
|
rule
|
symbol
|
|||||
expression
|
1
|
3
|
||||||
expression
|
rule
|
rule
|
||||||
subExp
|
1
|
1
|
||||||
subExp
|
symbol
|
rule
|
||||||
term
|
1
|
|||||||
term
|
rule
|
|||||||
constant
|
1
|
|||||||
constant
|
integerConstant||stringConstant
|
|||||||
arrayElem
|
1
|
1
|
1
|
1
|
||||
arrayElem
|
rule
|
symbol
|
rule
|
symbol
|
||||
paranthExp
|
1
|
1
|
||||||
paranthExp
|
symbol
|
rule
|
symbol
|
|||||
unOpTerm
|
1
|
1
|
||||||
unOpTerm
|
symbol
|
rule
|
||||||
subroutineCall
|
1
|
|||||||
subroutineCall
|
rule
|
|||||||
simpleCall
|
1
|
1
|
1
|
1
|
||||
simpleCall
|
identifier
|
symbol
|
rule
|
symbol
|
||||
classMethCall
|
1
|
1
|
1
|
1
|
1
|
1
|
||
classMethCall
|
identifier
|
symbol
|
identifier
|
symbol
|
rule
|
symbol
|
||
expressionList
|
2
|
|||||||
expressionList
|
rule
|
|||||||
expressions
|
1
|
3
|
||||||
expressions
|
rule
|
rule
|
||||||
addlExpr
|
1
|
1
|
||||||
addlExpr
|
symbol
|
rule
|
||||||
keywordConstant
|
true|false|null|this
|
|||||||
keywordConstant
|
keyword
|
Subscribe to:
Posts (Atom)