python - 如何使用 PyPDF2 复制和更改 PDF 文件的名称
问题描述
我有一组 pdf 文件,在文本后有一个字符串,例如:
example1.pdf
This is your name
John Doe
所以我想更改我所有 PDF 的名称,例如,它将出现而不是 example1.pdf 出现 John Doe.pdf
我做了以下程序:
def main():
pdfFiles=[]
for filename in os.listdir('C:\\programs'):
if filename.endswith('.pdf'):
pdfFiles.append(filename)
os.chdir('C:\\programs')
regex="This is your name"
lista=[]
pdfWriter=PyPDF2.PdfFileWriter()
for filename in pdfFiles:
pdfFileobj=open(filename,"rb")
pdfReader=PyPDF2.PdfFileReader(pdfFileobj)
page=pdfReader.getPage(0)
text=page.extractText()
before_keyword,keyword,after_keyword=text.partition(regex)
list=after_keyword
a=list.split("\n")
pdfWriter.addPage(page)
pdfoutput=open(a[3],"wb")
pdfWriter.write(pdfoutput)
pdfoutput.close()
我已经管理a[3]
包含人名,但是当我运行我的程序时,我收到以下错误:
return self.flattenedPages[pageNumber]
IndexError: list index out of range
我怎样才能解决这个问题?
解决方案
推荐阅读
- javascript - 如何使用来自不同组件的钩子?
- r - 如何按大致相同的变量对数据框进行分组?
- ansible - 从剧本中提取以前的内核和当前内核
- html - 通过 :checked 影响复选框父级之外的元素
- html - 显示 Flex 以对齐移动或响应页面
- javascript - window.onerror / window.addEventListener 在我的生产环境中没有被触发
- postgresql - 我们可以在postgresql中更改单个表或数据库的数据目录吗
- python - 通过 Python 从 JSON 文件访问字典中的列表
- mysql - 将 CLS 与 Sequelize 非托管事务一起使用
- iis - Internet 信息服务不播放 libvlc http 流