I am looking for a free program or script that can take a folder path as input and output the word count of every PDF file located in the folder and its subfolders. It should work on Windows 7 SP1 x64 Ultimate and be free.
import PyPDF2 as ppdf from os.path import walk, join, splitext import sys def getPDFWordCount(path): word_count = 0 # Load PDF into pyPDF pdf = ppdf.PdfFileReader(file(path, "rb")) # Iterate pages for i in range(0, pdf.getNumPages()): # Extract text from page and add to content content = pdf.getPage(i).extractText() # Collapse whitespace and count word_count += len(content.replace(u"\xa0", " ").strip().split()) return word_count if __ name__ == "__main__": for arg in sys.argv[1:]: for (root, dirs, files) in walk(arg): for filename in files: (name, ext) = splitext(filename) if ext.lower() == '.pdf': filepath = join(root, filename) print filepath, getPDFWordCount(filepath)
Take a look at the examples of os.path.walk and splitext to get some ideas how to iterate through directories and how to identify pdf files.
This should work on just about any platform even windows but has not been tested on any platform. If you need one you can put a GUI front end on with wxPython.