我正在编写的代码必须重命名并更改某些文件夹中某些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)
您能建议我如何解决这个问题吗?您认为有更聪明的方法吗?
致谢
答案 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 ?