阅读目录中的所有PDF(图像)

时间:2017-02-06 14:15:07

标签: python pdf operating-system pypdf2

我附上了一张图片,以帮助展示我所做的一切。我正在尝试编写一个程序,该程序将向目录中具有奇数页数的所有PDF添加空白页。但是,我似乎无法读取目录中的所有PDF。

我在一个PDF上运行的脚本,但我有1000个这样做。为什么我不能读取user_input目录中的所有PDF?

Screenshot of code and error here

代码在这里

from PyPDF2 import PdfFileReader, PdfFileWriter, PdfFileMerger
import os


user_input = input("Enter the path of your file: ")
files = os.listdir(user_input)

for file in files:
    print(file)
    pdfReader = PdfFileReader(open(files, 'rb'))

3 个答案:

答案 0 :(得分:0)

.py文件与pdfs位于同一目录中吗?如果没有,您将需要完整的路径来读取文件而不仅仅是文件名,这是由os.listdir返回的

答案 1 :(得分:0)

为了处理文件夹中的每个PDF文件,您需要做一些事情。

  1. 到达正确的目录
  2. 获取所有文件
  3. 仅获取PDF文件
  4. 操作系统非常适合这种情况。它可以获取所有文件,然后让您确定如何处理它们。我遇到的一个问题(也可能是你的)是我的路径中有空格,os.chdir()正在查看路径(“something \ long \ with \ spaces / abcd / pdf \ folder”)并且用“\”替换所有空格意味着我的最终路径是“some \ long \ with \ spaces / abcd / pdf \ folder”,这不是有效的路径。从原始用户输入中删除“\”工作正常。如果您需要任何进一步的帮助,请告诉我。

    import os
    os.chdir(raw_input("enter the path: ").replace("\\", ""))
    print os.listdir(".")
    for file in os.listdir("."):
        if file.endswith(".pdf"):
            print file
            process(file) # do whatever it is you need to here
    

答案 2 :(得分:0)

使用以下代码。此代码将提供目录中所有pdf文件的列表

import glob, os

def readfiles():
   os.chdir(path)
   pdfs = []
   for file in glob.glob("*.pdf"):
       print(file)
       pdfs.append(file)