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