I need to open all PDFs in a certain directory, so I first generate a list of the file paths using os.path:
filenames = [
    normpath(join(directoryname, filename))
    for filename in listdir(directoryname)
    if filename.lower().endswith('.'+extension)            
    ]
So an item in that list looks like this: D:\\Folder\\2010\\file.pdf
Then I'd like to open each file in a for-loop:
for file in filenames:
    PdfFileReader(file(file, 'rb'))
but there seems to be an issue with the 2010, because I get this error:
IOError: [Errno 2] No such file or directory: 'D:\\Folder\\x810\\file.pdf'
I'd like to do something along the lines of
PdfFileReader(file(r'D:\\Folder\\2010\\file.pdf', 'rb'))
how would I do that in the above example where the path is passed as a variable? Or are there any better ways to do this?
I'm using Windows and Python 2.6.
Thanks in advance!
The backslash is special in C-style strings like Python uses, just like in C++, C#, and Java.  Either use a double-backslash to say “yes, I really mean a backslash,” not the character code \201, or use an r'' string that does not interpret backslash sequences:
'D:\\Folder\\2010\\file.pdf'
r'D:\Folder\2010\file.pdf'
Note that this issue does NOT come up with variables!  Once you create a string correctly, it always keeps its value; it does NOT get re-interpreted, and have backslashes cause problems all over again, each time you pass the value to a function, so open(myvar) should see exactly the same string you get when you print(myvar).
(I think that on Windows you may also be able to just use forward slashes, which require no special quoting:)
'D:/Folder/2010/file.pdf'
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With