使用python关闭PDF

时间:2019-04-14 16:47:57

标签: python pdf

我正在编写的代码必须重命名并更改某些文件夹中某些PDF的目录;单个PDF的新名称和新目录都取决于PDF本身的内容。这些PDF之间的差异非常大,因此提取所需的数据并非易事。

说,我决定以这种方式进行

  • 打开并显示PDF;
  • 手动搜索打开的PDF中需要的参数;
  • 将找到的参数作为输入;
  • 关闭PDF;
  • 使用新名称和新目录重命名PDF。

但是,我无法关闭打开的PDF,因此如果打开它,我将无法重命名。我以下面的代码为例:

import os

oldpath = "C:\\Users\Desktop\Training/"
os.chdir = oldpath

for oldname in os.listdir(oldpath):

    os.startfile(oldname)

    print("Parameter 1")
    P1 = input()
    print("Parameter 2")
    P2 = input()
    print("Parameter 3")
    P3 = input()

    #I want to close the opened file here

    newpath = oldpath + "/" + P1 + "/" + P2 + "/"
    newname = P3 + ".pdf"

    os.rename(oldpath + "/" + oldname, newpath + "/" + newname)

您能建议我如何解决这个问题吗?您认为有更聪明的方法吗?

致谢

1 个答案:

答案 0 :(得分:3)

使用os.startfile()是一种非常聪明的方法,令我惊讶的是,它似乎允许您(至少 SOME )阅读要从.pdf文件中读取的内容。 。酷!

但是您不能“关闭”该应用程序(在Windows中大概是Acrobat Reader):

  

https://docs.python.org/3/library/os.html

     

startfile()将在关联的应用程序启动后立即返回。   没有选择等待应用程序关闭的选项,也没有办法   检索应用程序的退出状态。

建议:

尝试使用.pdf库代替“ .pdf”来“打开”和“读取”。例如,PDFMiner

PS:

os.startfile()导致“文件正在使用”,因此阻止了os.rename()。也许您可以移动/重命名文件 FIRST