-
-
Save JoeGermuska/186930 to your computer and use it in GitHub Desktop.
Revisions
-
JoeGermuska revised this gist
Sep 14, 2009 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -32,7 +32,7 @@ delimiter = ',' cols = [0, ] if opts: opts = dict(opts) show_headers = '-h' in opts if '-f' in opts: cols = opts['-f'].split(",") if '-d' in opts: -
JoeGermuska revised this gist
Sep 14, 2009 . 1 changed file with 14 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -6,6 +6,8 @@ Note that fields are zero-based, as opposed to 'cut' where they are 1-based. Leveraged from/motivated by an example from @bycoffe Should use something better than getopt, but this works... Usage: csvcut foobar.csv (prints the first column of each row of foobar.csv) @@ -15,9 +17,13 @@ Usage: csvcut -f 0,2 -d "|" foobar.csv (prints the first and third columns of the pipe-delimited foobar.csv) csvcut -h foobar.csv (prints the values of the first line of foobar.csv, preceded by the field index which would be used to display that column. If present, the -f option will be ignored.) """ import sys, csv, getopt opts, args = getopt.getopt(sys.argv[1:], "f:d:h", []) if args: i = open(args[0]) else: @@ -26,11 +32,17 @@ delimiter = ',' cols = [0, ] if opts: opts = dict(opts) show_headers = bool('-h' in opts or '--header' in opts) if '-f' in opts: cols = opts['-f'].split(",") if '-d' in opts: delimiter = opts['-d'] for row in csv.reader(i, delimiter=delimiter): if show_headers: for i,c in enumerate(row): print "%3i: %s" % (i,c) break for c in cols: print row[int(c)], print -
bycoffe revised this gist
Sep 14, 2009 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -22,8 +22,8 @@ if args: i = open(args[0]) else: i = sys.stdin delimiter = ',' cols = [0, ] if opts: opts = dict(opts) if '-f' in opts: -
bycoffe revised this gist
Sep 14, 2009 . 1 changed file with 13 additions and 10 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,9 +1,6 @@ #!/usr/bin/env python """ Like cut, but for CSVs. To be used from a shell command line. Note that fields are zero-based, as opposed to 'cut' where they are 1-based. @@ -15,19 +12,25 @@ Usage: head -10 foobar.csv | csvcut -f 0,2 (prints the first and third columns of the first ten lines of foobar.csv) csvcut -f 0,2 -d "|" foobar.csv (prints the first and third columns of the pipe-delimited foobar.csv) """ import sys, csv, getopt opts, args = getopt.getopt(sys.argv[1:], "f:d:", ["fields=", "delimiter="]) if args: i = open(args[0]) else: i = sys.stdin delimiter = ',' cols = [1] if opts: opts = dict(opts) if '-f' in opts: cols = opts['-f'].split(",") if '-d' in opts: delimiter = opts['-d'] for row in csv.reader(i, delimiter=delimiter): for c in cols: print row[int(c)], print -
JoeGermuska revised this gist
Sep 14, 2009 . 1 changed file with 11 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -5,7 +5,16 @@ Like cut, but for CSVs. To be used from a shell command line. Change row[1] to the row index to be printed. row[1] will print the second item in the row. Note that fields are zero-based, as opposed to 'cut' where they are 1-based. Leveraged from/motivated by an example from @bycoffe Usage: csvcut foobar.csv (prints the first column of each row of foobar.csv) head -10 foobar.csv | csvcut -f 0,2 (prints the first and third columns of the first ten lines of foobar.csv) """ import sys, csv, getopt opts, args = getopt.getopt(sys.argv[1:], "f:", ["fields="]) @@ -16,7 +25,7 @@ else: if opts: cols = opts[0][1].split(",") else: cols = [0] for row in csv.reader(i): for c in cols: print row[int(c)], -
JoeGermuska created this gist
Sep 14, 2009 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,24 @@ #!/usr/bin/env python """ Like cut, but for CSVs. To be used from a shell command line. Change row[1] to the row index to be printed. row[1] will print the second item in the row. Leveraged from an example from @bycoffe """ import sys, csv, getopt opts, args = getopt.getopt(sys.argv[1:], "f:", ["fields="]) if args: i = open(args[0]) else: i = sys.stdin if opts: cols = opts[0][1].split(",") else: cols = [1] for row in csv.reader(i): for c in cols: print row[int(c)], print