python - 如何覆盖 Python 当前正在读取的文件

标签 python pdf input overwrite

我不太确定最好的表达方式,但我想做的是读取 pdf 文件,进行各种修改,然后将修改后的 pdf 保存在原始文件上。截至目前,我可以将修改后的 pdf 保存到单独的文件中,但我希望替换原始文件,而不是创建新文件。

这是我当前的代码:

from pyPdf import PdfFileWriter, PdfFileReader

output = PdfFileWriter()
input = PdfFileReader(file('input.pdf', 'rb'))
blank = PdfFileReader(file('C:\\BLANK.pdf', 'rb'))

# Copy the input pdf to the output.
for page in range(int(input.getNumPages())):
    output.addPage(input.getPage(page))

# Add a blank page if needed.
if (input.getNumPages() % 2 != 0):
    output.addPage(blank.getPage(0))

# Write the output to pdf.
outputStream = file('input.pdf', 'wb')
output.write(outputStream)
outputStream.close()

如果我将 outputStream 更改为不同的文件名,它工作正常,我只是无法保存输入文件,因为它仍在使用中。我已尝试 .close() 流,但它也给我错误。

我感觉这有一个相当简单的解决方案,只是我没有运气找到它。

谢谢!

最佳答案

您始终可以将临时输出文件重命名为旧文件:

import os
f = open('input.pdf', 'rb')
# do stuff to temp.pdf
f.close()
os.rename('temp.pdf', 'input.pdf')

关于python - 如何覆盖 Python 当前正在读取的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2746758/

相关文章:

java - 使用 PDFBox 解析 PDF 文件(尤其是表格)

java - 使用异常检查输入是否为整数 - Java

python - 如何在胶水作业中使用 Awswrangler?

python - 从维基百科页面获取坐标

javascript - 是否可以为已用于加载 PDF 文件的 iframe 触发按键事件

ruby - Ruby 的 pdftk 包装器

python - 如何使用 Seaborn 绘制阶跃函数?

python - Pyautogui 鼠标点击而不实际移动鼠标

input - 什么工具可以拦截所有桌面操作系统的数字锁定键?

html - 在 Opera 中,输入用黑色包围