如何在此PDF水印移除脚本中添加批处理操作?
这个脚本并不是我精心设计的,它允许我从PDF文件中删除水印。问题是它没有进行批处理操作的选项,我在同一个目录中有1000多个PDF文件如何在此PDF水印移除脚本中添加批处理操作?,pdf,python-3.x,watermark,Pdf,Python 3.x,Watermark,这个脚本并不是我精心设计的,它允许我从PDF文件中删除水印。问题是它没有进行批处理操作的选项,我在同一个目录中有1000多个PDF文件 from PyPDF2 import PdfFileReader, PdfFileWriter def removeWatermark(input_fname: str, output_fname: str): with open(input_fname, "rb") as inputFile, open(output_fname
from PyPDF2 import PdfFileReader, PdfFileWriter
def removeWatermark(input_fname: str, output_fname: str):
with open(input_fname, "rb") as inputFile, open(output_fname, "wb") as outputFile:
reader = PdfFileReader(inputFile)
writer = PdfFileWriter()
for n in range(reader.numPages):
page = reader.getPage(n)
del page["/Contents"][-1]
writer.addPage(page)
writer.write(outputFile)
if __name__ == "__main__":
import sys
if len(sys.argv) != 3:
raise RuntimeError("Arguments not correct!")
removeWatermark(sys.argv[1], sys.argv[2])
如果有人能帮我,我很感激
依赖项:PyPDF2和PDFtk
我解决了这个问题:
import os
from PyPDF2 import PdfFileReader, PdfFileWriter
path = os.path.dirname(__file__)
files = os.listdir(path)
def removeWater(inputfilename,outputfilename):
"input"
inputFile = open(inputfilename, "rb")
outputFile = open(outputfilename, "wb")
pdfReader = PdfFileReader(inputFile)
pdfWriter = PdfFileWriter()
for n in range(pdfReader.numPages):
page = pdfReader.getPage(n)
del page["/Contents"][-1]
pdfWriter.addPage(page)
pdfWriter.write(outputFile)
if __name__ == '__main__':
for filename in files:
if filename.endswith(('.pdf')):
removeWater(os.path.splitext(filename)[0] + ".pdf",os.path.splitext(filename)[0] + "- limpo" + ".pdf")
这个想法将是一个执行循环。我正在使用Windows。我只有一门算法和C语言的课程。我认为这很容易,但我不能创建这个循环。尽管购买了一门基本的python课程,但讲师在操作文件方面并没有走得太远。python调用可以像cmd、powershell或bash中的任何shell实用程序一样简单地重复。那么问题出在哪里?!如果脚本在单个文件上运行良好,则无需对脚本进行任何更改。谢谢,但我已经解决了它。我编辑了问题,把它写下来作为答案,而不是对问题的编辑。你可以自己回答。您希望通过Python实现循环。