Screwing Up looping in Generator

Deborah Swanson python at deborahswanson.net
Tue Jan 3 21:21:59 EST 2017


Sayth Renshaw wrote, on January 03, 2017 5:55 PM
> 
> On Wednesday, 4 January 2017 12:36:10 UTC+11, Sayth Renshaw  wrote:
> > So can I call the generator twice and receive the same file 
> twice in 2 
> > for loops?
> > 
> > Once to get the files name and the second to process?
> > 
> >  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: 
> >             for file in rootobs:
> >               # create and write csv
> > 
> > Cheers
> > 
> > Sayth
> 
> I just need it to write after each file however the 
> 
> with open(#file) as csvf:
> 
> Keeps it all open until every file processed in an output 
> file with the name of the first file in the generator.
> 

In that case, I think you just need to devise your output file name
scheme, and it looks like you want to use 'os.path.splitext(base)[0] +
".csv")'. Then  output each file in the same for loop, before you go
back for another input file. Just read in the file, do whatever you want
to it, and then write it to the new file name, all in the same loop.

I don't see any need to loop through rootobs a second time.





More information about the Python-list mailing list