skynyrd
9/21/2016 - 1:50 PM

For changing csv delimiter in Python

For changing csv delimiter in Python

# Python, CSV

import csv
import optparse


def change_csv_delimiter(in_file, input_delimiter, out_file, output_delimiter):
    with open(in_file, 'rb') as in_file, open(out_file, 'wb') as out_file:
        reader = csv.DictReader(in_file, delimiter=input_delimiter)
        writer = csv.DictWriter(out_file, reader.fieldnames, delimiter=output_delimiter)
        writer.writeheader()
        writer.writerows(reader)


parser = optparse.OptionParser("read --help")
parser.add_option("--input-delimiter", type="string", dest="input_delimiter", help="Delimiter of the input file")
parser.add_option("--output-delimiter", type="string", dest="output_delimiter", help="Delimiter of the output file")

parser.add_option("--input", type="string", dest="input_file_name",
                  help="Name of the input file, should be in the same dir")
parser.add_option("--output", type="string", dest="output_file_name",
                  help="Name of the output file, should be in the same dir")

(options, args) = parser.parse_args()

change_csv_delimiter(options.input_file_name,
                     options.input_delimiter[0],
                     options.output_file_name,
                     options.output_delimiter[0])