Hi This is simple, but its getting me confused.
I have a csv writer that opens a file and loops each line of the file for each file and then closes, writing one file. I want to alter the behaviour to be a written file for each input file. I saw a roundrobin example however it failed for me as you cannot get len(generator) to use a while loop on. it exhausts should I use the same for again after the with open? rootobs in this code is my generator and I am already looping it however def data_attr(roots): """Get the root object and iter items.""" for file in rootobs: base = os.path.basename(file.name) write_to = os.path.join("output", os.path.splitext(base)[0] + ".csv") with open(write_to, 'w', newline='') as csvf: race_writer = csv.writer(csvf, delimiter=',') race_writer.writerow( ["meet_id", "meet_venue", "meet_date", "meet_rail", ... # other categories here ... "jockeysurname", "jockeyfirstname"]) for xml_data in roots: ... # parsing code for noms in race_child: if noms.tag == 'nomination': race_writer.writerow( [meet_id, meet_venue, meet_date, ... #parsing info removed noms.get("jockeyfirstname")]) Cheers Sayth -- https://mail.python.org/mailman/listinfo/python-list