Hi everyone:
I wrote the following code to transform the data in a csv file and write to another csv file:
import csv
import re
fp = r'C:\data\input.csv'
fpw = r'C:\data\output.csv'
with open(fp, 'rb') as input, open(fpw, 'wb') as output:
     for row in csv.reader(input):
          try:
              stop = row[11]  # find a particular field
              extr = re.search(r"\[([A-Za-z0-9_]+)\]", stop)  # extract value enclosed by brackets in that field
              stop_id = str(extr.group(1)) 
              row[11] = stop_id  # replace the original field with the extracted value
              repl_row = ','.join(row) + '\n'
              output.write(repl_row)  # write the tweaked row to another csv file
         except csv.Error:
              pass
The code worked half way through the file and stopped due to an error raised, that said 'for row in csv.reader, line contains NULL byte'. I want to skip this error and proceed. Despite the except statement, it still stopped. Does anyone know how to solve this issue?
Much appreciate, Sui
Try using following modification:
with open(fp, 'rU') as input, open(fpw, 'wb') as output:
for row in csv.reader((line.replace('\0','') for line in input), delimiter=","):
