Я пытаюсь создать программу на Python, которая просматривает все файлы в папке, выбирает файлы с расширением .pdf и шифрует их с ограниченными разрешениями. Я использую эту версию библиотеки PyPDF2:
https://github.com/vchatterji/PyPDF2. (модификация оригинального PyPDF2, которая также позволяет устанавливать разрешения). Я проверил это с одним файлом PDF, и он отлично работает. Я хочу, чтобы оригинальный файл PDF был удален, а зашифрованный должен остаться с тем же именем.
Вот мой код:
import os
import PyPDF2
directory = './'
for filename in os.listdir(directory):
if filename.endswith(".pdf"):
pdfFile = open(filename, 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFile)
pdfWriter = PyPDF2.PdfFileWriter()
for pageNum in range(pdfReader.numPages):
pdfWriter.addPage(pdfReader.getPage(pageNum))
pdfFile.close()
os.remove(filename)
pdfWriter.encrypt('', 'ispat', perm_mask=-3904)
resultPdf = open(filename, 'wb')
pdfWriter.write(resultPdf)
resultPdf.close()
continue
else:
continue
выдает следующую ошибку:
C:\Users\manul\Desktop\ghh>python encrypter.py
Traceback (most recent call last):
File "encrypter.py", line 9, in <module>
pdfReader = PyPDF2.PdfFileReader(pdfFile)
File "C:\Users\manul\AppData\Local\Programs\Python\Python37\lib\site-packages\PyPDF2\pdf.py", line 1153, in __init__
self.read(stream)
File "C:\Users\manul\AppData\Local\Programs\Python\Python37\lib\site-packages\PyPDF2\pdf.py", line 1758, in read
stream.seek(-1, 2)
OSError: [Errno 22] Invalid argument
У меня есть несколько PDF-файлов, хранящихся в папке 'ghh' на рабочем столе. Любая помощь с благодарностью.