从CSV-fi重命名Python中的pdf时出现问题

2024-04-26 00:09:23 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个脚本可以读取一个CSV文件(文件如下所示):

test0
test1
test2
test3

然后脚本获取一个多页PDF文件(本例中为4页),并将其拆分为4个单独的页,命名为“document-pages1”、“document-pages2”等

我想让它做的是,将拆分页文件命名为它们在CSV文件中的等效位置。你知道吗

因此,一个4页的PDF文件将与4行csv文件相关联。不幸的是,我不知道如何实现这一部分。你知道吗

我的代码如下:

from PyPDF2 import PdfFileWriter, PdfFileReader
import csv

def readcsv(filename):
    ifile = open(filename, "rU")
    reader = csv.reader(ifile, delimiter=";")

    rownum = 0
    a = []

    for row in reader:
        a.append(row)
        rownum += 1

    ifile.close()
    return a

filepath = input("Filepath: ")
filename = input("File name: ")

csv = readcsv(filepath + filename)

inputpdf = PdfFileReader(open("test.pdf", "rb"))

for i in range(inputpdf.numPages):
    output = PdfFileWriter()
    output.addPage(inputpdf.getPage(i))
    with open("document-page%s.pdf" % i, "wb") as outputStream:
        output.write(outputStream)

任何帮助都将不胜感激。你知道吗


Tags: 文件csvimport脚本outputpdfopenfilename
1条回答
网友
1楼 · 发布于 2024-04-26 00:09:23

最终解决了我自己的问题如下:

from PyPDF2 import PdfFileWriter, PdfFileReader
import csv

def readcsv(filename):
    ifile = open(filename, "rU")
    reader = csv.reader(ifile, delimiter=";")

    rownum = 0
    a = []

    for row in reader:
        a.append(row)
        rownum += 1

    ifile.close()
    return a

filepath = input("Filepath: ")
filename = input("File name: ")

csv = readcsv(filepath + filename)

inputpdf = PdfFileReader(open("test.pdf", "rb"))

for i in range(inputpdf.numPages):
    output = PdfFileWriter()
    output.addPage(inputpdf.getPage(i))
    with open(str(csv[i]).translate(str.maketrans('','',"[]'")) + ".pdf", "wb") as outputStream:
        output.write(outputStream)

相关问题 更多 >