Python 从 excel for 循环合并 PDF
Python PDF merging from an excel for loop
我有一个 excel sheet,带有一些下拉列表。 (在职的)
现在我在 Python,试图从 excel sheet(xlsx 文件)读取日期并将数据读入 for 循环(同样有效)
我有 3 列名称,名称为 ref。对于 pdf 文件,所有 pdf 文件都位于同一位置。
我需要将 3 个随机 PDF 文件合并为一个。
所以我可以看到我可以使用 PyPDF2...但是我如何在我的 for 循环中执行此操作,以便它逐行读取 3 个值并将文件逐行合并到一个 PDF 中?
我的代码是这个 ATM,我从 xlsx sheet 逐行获取正确的值。
import os
import pandas as pd
from PyPDF2 import PdfFileMerger
data = pd.read_excel(r'Resources\liste.xlsx', sheet_name='Ark1', skiprows=3)
dataread = pd.DataFrame(data)
for index, row in dataread.iterrows():
print(index, row)
更新!
@JacoblRR 指出我
我可以看到如何将文件导入 PyPDF2,我的问题是我从 excel sheet 一行一行地获取 4 个值。
前任。值 1=u6AB,值 2=FUO0002,值 3=FUO0004,值 4=u34_driblinger
然后我有一个位置 c:\users\myuser\document\master\pdf\ 在这里我有 u6ABx.pdf、FUO0002_xxxxxxx.pdf 和 FUO0004_xxxxxxx.pdf 这 3 个文件我想合并到 u34_driblinger.pdf
我怎样才能从前任那里做到这一点。来自 link,例如:
for index, row in dataread.iterrows():
print(index, row)
try:
# if doc exist then merge
if os.path.exists(row):
input = PyPDF2.PdfFileReader(open(row, 'rb'))
merger.append((input))
else:
print(f"problem with file {row}")
except:
print("cant merge !! sorry")
else:
print(f" {row} Merged !!! ")
merger.write("Merged_doc.pdf")
您不能将 pd.Series 类型的数据帧记录提供给 os.path.exists,而且由于您 excel 包含文件名,如果您的脚本不在,则您必须提供完整的文件路径与 PDF 文件相同的文件夹。
for index, row in dataread.iterrows():
print(index, row)
filepath =os.join('c:\users\myuser\document\master\pdf', row.iat[0])
try:
# if doc exist then merge
if os.path.exists(filepath):
input = PyPDF2.PdfFileReader(open(filepath, 'rb'))
merger.append((input))
else:
print(f"problem with file {row}")
except:
print("cant merge !! sorry")
else:
print(f" {row} Merged !!! ")
merger.write("Merged_doc.pdf")
我有一个 excel sheet,带有一些下拉列表。 (在职的) 现在我在 Python,试图从 excel sheet(xlsx 文件)读取日期并将数据读入 for 循环(同样有效)
我有 3 列名称,名称为 ref。对于 pdf 文件,所有 pdf 文件都位于同一位置。 我需要将 3 个随机 PDF 文件合并为一个。
所以我可以看到我可以使用 PyPDF2...但是我如何在我的 for 循环中执行此操作,以便它逐行读取 3 个值并将文件逐行合并到一个 PDF 中?
我的代码是这个 ATM,我从 xlsx sheet 逐行获取正确的值。
import os
import pandas as pd
from PyPDF2 import PdfFileMerger
data = pd.read_excel(r'Resources\liste.xlsx', sheet_name='Ark1', skiprows=3)
dataread = pd.DataFrame(data)
for index, row in dataread.iterrows():
print(index, row)
更新!
@JacoblRR 指出我 我可以看到如何将文件导入 PyPDF2,我的问题是我从 excel sheet 一行一行地获取 4 个值。 前任。值 1=u6AB,值 2=FUO0002,值 3=FUO0004,值 4=u34_driblinger
然后我有一个位置 c:\users\myuser\document\master\pdf\ 在这里我有 u6ABx.pdf、FUO0002_xxxxxxx.pdf 和 FUO0004_xxxxxxx.pdf 这 3 个文件我想合并到 u34_driblinger.pdf
我怎样才能从前任那里做到这一点。来自 link,例如:
for index, row in dataread.iterrows():
print(index, row)
try:
# if doc exist then merge
if os.path.exists(row):
input = PyPDF2.PdfFileReader(open(row, 'rb'))
merger.append((input))
else:
print(f"problem with file {row}")
except:
print("cant merge !! sorry")
else:
print(f" {row} Merged !!! ")
merger.write("Merged_doc.pdf")
您不能将 pd.Series 类型的数据帧记录提供给 os.path.exists,而且由于您 excel 包含文件名,如果您的脚本不在,则您必须提供完整的文件路径与 PDF 文件相同的文件夹。
for index, row in dataread.iterrows():
print(index, row)
filepath =os.join('c:\users\myuser\document\master\pdf', row.iat[0])
try:
# if doc exist then merge
if os.path.exists(filepath):
input = PyPDF2.PdfFileReader(open(filepath, 'rb'))
merger.append((input))
else:
print(f"problem with file {row}")
except:
print("cant merge !! sorry")
else:
print(f" {row} Merged !!! ")
merger.write("Merged_doc.pdf")