diff --git a/PhyPraKit/PhyPraKit.py b/PhyPraKit/PhyPraKit.py index c99f1d5..ec7d439 100644 --- a/PhyPraKit/PhyPraKit.py +++ b/PhyPraKit/PhyPraKit.py @@ -2142,7 +2142,7 @@ def plot_xy(x, y, ex, ey, title=None, # finally, plot legend of all shown graphs plt.legend(loc='best') -def csv2yaml(file, nlhead=1, delim='\t'): +def csv2yaml(file, nlhead=1, delim='\t', keyline=0): """read floating point data in general csv format and convert to yaml skip header lines, replace decimal comma, remove special characters, @@ -2217,7 +2217,7 @@ def specialCharFilter(f, delim): #print(" --> number of data points", Nlin) # interpret strings in header[0] as keys - keys = hlines[0].split(delim) + keys = hlines[keyline].split(delim) Nkey = len(keys) if Nkey != Ncol: print('Nkey=', Nkey, ' Ncol=', Ncol) diff --git a/PhyPraKit/csv2yml.py b/PhyPraKit/csv2yml.py index 8beca83..01844c8 100755 --- a/PhyPraKit/csv2yml.py +++ b/PhyPraKit/csv2yml.py @@ -51,6 +51,9 @@ parser.add_argument('-n','--header_lines', type=int, default=1, help="numer of header lines, default=1") + parser.add_argument('-k','--key_line', + type=int, default=0, + help="header line containing keys, default=0") if len(sys.argv)==1: # print help message if no input given parser.print_help() @@ -61,6 +64,7 @@ fnam = args.filename nlhead = args.header_lines + l_key = args.key_line delim = args.delimiter showHeader = args.Header sav_flg = args.save @@ -70,7 +74,7 @@ # ---- end argument parsing ------------------- f = open(fnam, 'r') - hlines, ylines = csv2yaml(f, nlhead, delim) + hlines, ylines = csv2yaml(f, nlhead, delim, l_key) if not quiet: print('-->', fnam, 'to yaml', end='') diff --git a/tools/csv2yml.py b/tools/csv2yml.py index 8beca83..01844c8 100755 --- a/tools/csv2yml.py +++ b/tools/csv2yml.py @@ -51,6 +51,9 @@ parser.add_argument('-n','--header_lines', type=int, default=1, help="numer of header lines, default=1") + parser.add_argument('-k','--key_line', + type=int, default=0, + help="header line containing keys, default=0") if len(sys.argv)==1: # print help message if no input given parser.print_help() @@ -61,6 +64,7 @@ fnam = args.filename nlhead = args.header_lines + l_key = args.key_line delim = args.delimiter showHeader = args.Header sav_flg = args.save @@ -70,7 +74,7 @@ # ---- end argument parsing ------------------- f = open(fnam, 'r') - hlines, ylines = csv2yaml(f, nlhead, delim) + hlines, ylines = csv2yaml(f, nlhead, delim, l_key) if not quiet: print('-->', fnam, 'to yaml', end='')