Je ne suis pas sûr de la meilleure façon de le dire, mais ce que je veux faire, c'est lire un fichier pdf, apporter diverses modifications, et enregistrer le pdf modifié sur le fichier original. A partir de maintenant, je suis en mesure d'enregistrer le pdf modifié dans un fichier séparé, mais je cherche à remplacer l'original, pas créer un nouveau fichier.Comment écraser un fichier en cours de lecture par Python
Voici mon code actuel:
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()
Si je change le outputStream
à un nom de fichier différent, il fonctionne très bien, je ne peux pas simplement écraser le fichier d'entrée, car il est encore utilisé. J'ai essayé de .close()
le flux, mais il me donnait aussi des erreurs. J'ai le sentiment que cela a une solution assez simple, je n'ai tout simplement pas eu de chance de le trouver.
Merci!