我正在编写的代码必须重命名并更改某个文件夹中某些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)你能建议我如何解决这个问题吗?你认为有更聪明的方法吗?
问候
发布于 2019-04-14 16:57:28
使用os.startfile()是一种相当聪明的方法,我感到惊讶的是,它似乎允许您阅读(至少是一些)您想从..pdf中阅读的内容。酷!
但是您不能“关闭”应用程序(大概是Windows上的Acrobat Reader ):
https://docs.python.org/3/library/os.html
startfile()在相关应用程序启动后立即返回。无法选择等待应用程序关闭,也无法检索应用程序的退出状态。
建议:
尝试使用.pdf库“打开”和“读取”您的..pdf。例如,PDFMiner
PS:
os.startfile()导致了“文件在使用”,从而阻止了os.rename()。也许您可以先移动/重命名文件
https://stackoverflow.com/questions/55677712
复制相似问题