On Friday, 4 July 2014 16:19:09 UTC+10, Gregory Ewing wrote: > flebber wrote: > > > so in my file I had on line 44 this trainer name. > > > > > > "Michael, Wayne & John Hawkes" > > > > > > and in line 95 this horse name. Inz'n'out > > > > > > this throws of my capturing correct item 9. How do I protect against this? > > > > Use python's csv module to read the file. Don't try to > > do it yourself; the rules for handling embedded commas > > and quotes in csv are quite complicated. As long as > > the file is a well-formed csv file, the csv module > > should parse fields like that correctly. > > > > -- > > Greg
True Greg worked easier def race_table(text_file): """utility to reorganise poorly made csv entry""" # input_table = [[item.strip(' "') for item in record.split(',')] # for record in text_file.splitlines()] # At this point look at input_table to find the record indices # identity = string.maketrans("", "") # print(input_table) # input_table = [s.translate(identity, ",'") for s # in input_table] output_table = [] for record in text_file: if record[0] == 'Meeting': meeting = record[3] elif record[0] == 'Race': date = record[13] race = record[1] elif record[0] == 'Horse': number = record[1] name = record[2] results = record[9] res_split = re.split('[- ]', results) starts = res_split[0] wins = res_split[1] seconds = res_split[2] thirds = res_split[3] try: prizemoney = res_split[4] finally: prizemoney = 0 trainer = record[4] location = record[5] print(name, wins, seconds) output_table.append((meeting, date, race, number, name, starts, wins, seconds, thirds, prizemoney, trainer, location)) return output_table MY_FILE = out_file_name(FILENAME) # with open(FILENAME, 'r') as f_in, open(MY_FILE, 'w') as f_out: # for line in race_table(f_in.readline()): # new_row = line with open(FILENAME, 'r') as f_in, open(MY_FILE, 'w') as f_out: CONTENT = csv.reader(f_in) # print(content) FILE_CONTENTS = race_table(CONTENT) # print new_name f_out.write(str(FILE_CONTENTS)) if __name__ == '__main__': pass Sayth -- https://mail.python.org/mailman/listinfo/python-list