I am having an error file object when opening and reading a text file(csv). I must be misusing the with so that when I call the function race table its getting a file object and not a readline.
How can I get the with to correctly hand over the file?
from sys import argv SCRIPT, FILENAME = argv def out_file_name(file_name): """take an input file and keep the name with appended _clean""" file_parts = file_name.split(".",) output_file = file_parts + '_clean.' + file_parts return output_file def race_table(text_file): 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 output_table =  for record in input_table: if record == 'Meeting': meeting = record elif record == 'Race': date = record race = record elif record == 'Horse': number = record name = record trainer = record location = record output_table.append((meeting, date, race, number, name, 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 a = race_table(f_in) f_out.write(a) if __name__ == '__main__': pass