【发布时间】:2022-01-23 13:29:57
【问题描述】:
编码领域:python3 中使用 pyPDF2 的 PDF 目录
问题:我需要一个程序,它可以遍历包含多个字典的联合变量,然后是包含多个字典的多个列表。
[
{},
[{}, {}, {}],
{},
[{}, {}, {}],
{},
[{}, {}, {}]
]
这种模式重复多次。
预期输出:输出应如下所示
1 Title Goes Here
1.1 Title Goes Here
1.1.1 Title Goes Here
1.1.2 Title Goes Here
1.1.3 Title Goes Here
1.2 Title Goes Here
1.2.1 Title Goes Here
1.2.2 Title Goes Here
1.2.3 Title Goes Here
1.3 Title Goes Here
1.3.1 Title Goes Here
1.3.2 Title Goes Here
1.3.3 Title Goes Here
2 Title Goes Here
2.1 Title Goes Here
2.1.1 Title Goes Here
2.1.2 Title Goes Here
2.1.3 Title Goes Here
2.2 Title Goes Here
2.2.1 Title Goes Here
2.2.2 Title Goes Here
2.2.3 Title Goes Here
2.3 Title Goes Here
2.3.1 Title Goes Here
2.3.2 Title Goes Here
2.3.3 Title Goes Here
计划:
import argparse as arp
from PyPDF2 import PdfFileReader
parser = arp.ArgumentParser()
parser.add_argument("-f", "--file", help="File to analyse")
arg = parser.parse_args()
filename = arg.file
def fileread():
doc = PdfFileReader(filename)
ToC = doc.getOutlines()
# ToC: Union[List[Union[Destination, list]], {__eq__}] = doc.getOutlines()
for elements in ToC:
#print(elements)
#print("\n")
try:
if elements is {}: # If the element is a dictionary just find the Title
print(elements['/Title']) # TODO: This is just skipped
else: # If the element is a list go through and print out the titles
for nest_dict in elements:
try:
print(nest_dict["/Title"])
except:
continue
except:
continue
fileread()
我正在测试这个程序:Compilers - Principles, Techniques, and Tools-Pearson_Addison Wesley (2006).pdf
非常感谢任何帮助。
【问题讨论】:
-
因为这是一棵嵌套树,你能看到无论你在哪里,这棵树看起来都一样吗?也许
fileread()应该是递归的。
标签: python-3.x pypdf2