On Feb 17, 7:09 pm, Christopher Barrington-Leigh <[EMAIL PROTECTED]> wrote: > Here is a file "test.csv" > number,name,description,value > 1,"wer","tape 2"",5 > 1,vvv,"hoohaa",2 > > I want to convert it to tab-separated without those silly quotes. Note > in the second line that a field is 'tape 2"' , ie two inches: there is > a double quote in the string. > > When I use csv module to read this: > > import sys > outf=open(sys.argv[1]+'.tsv','wt') > import csv > reader=csv.reader(open(sys.argv[1], "rb")) > for row in reader: > outf.write('\t'.join([rr.strip() for rr in row]) +'\n') > > it mangles it, messing up the double double-quote. > Can anyone help me? How do I use CSV to get it right? > Tjhanks! > c
Try this: infile = open('data.txt') outfile = open('outfile.txt', 'w') for line in infile: pieces = line.strip().split(',') data = [] for piece in pieces: if piece[0] == '"': data.append(piece[1:-2]) else: data.append(piece) out_line = '%s\n' % '\t'.join(data) outfile.write(out_line) -- http://mail.python.org/mailman/listinfo/python-list