Arshpreet Singh wrote: > Hi, I am converting PDF into text file, I am using following code. > > from pypdf2 import PdfFileReader > > def read_pdf(pdfFileName): > > pdf = PdfFileReader(pdfFileName) > > yield from (pg.extractText() for pg in pdf.pages) > > for i in read_pdf('book.pdf'): > print(i) > > I want to avoid for loop , I also tried to create another function and > call read_pdf() inside that new function using yield from but I think I am > missing real picture here
While it is possible to replace the loop with next(filter(print, read_pdf("book.pdf")), None) or the slightly less convoluted sys.stdout.writelines(map("{}\n".format, read_pdf("book.pdf"))) the for loop is the obvious and therefore recommended solution. Personally, I would also replace > yield from (pg.extractText() for pg in pdf.pages) with the good old for pg in pdf.pages: yield pg.extractText() and reserve the generator expression for occasions where it has a demonstrable advantage in readability. -- https://mail.python.org/mailman/listinfo/python-list