扫描文本文档中的字符串并保存出现索引列表-奇怪的模式

如何解决扫描文本文档中的字符串并保存出现索引列表-奇怪的模式

Python 3.8-我有一个pdf文档,其中包含3至5页的多个文档,所有文档都串在一起形成一个pdf。我将其转换为txt文档就可以了。

我需要从每个文档中提取一些信息,因此我将文本文档分成几行,并尝试简单地扫描这些行,如果行中显示“ Page 1”,然后将该索引存储到一个列表中。然后,我将知道要在找到第1页的前两个索引之间搜索我的第一个文档的信息。

此索引值列表的结果使我很困惑。请参见下面。

pdf_list = next(os.walk(pdf_directory))[2]

for each_pdf in pdf_list:
    extension = str(each_pdf[-4:])
    if extension == '.pdf':
        with open(each_pdf,"rb") as f:
            pdf = pdftotext.PDF(f)
        with open(str(each_pdf[:-4] + '.txt'),"w") as f:
            f.write("\n\n".join(pdf))
#All groovy so far.. turned it into a .txt file. Looks correct.

for each_txt in pdf_list:
    extension = str(each_txt[-4:])
    if extension == '.txt':
        with open(each_txt,"r") as f:
            text = f.read()
            lines = text.splitlines()
            page_1_indices = []

            for each in lines:
                if "Page 1" in each:
                    new_index = lines.index(each)
                    page_1_indices.append(new_index)
            print(page_1_indices)

这里是输出...它循环回到以前的位置,所以很不稳定,以至于我看不到任何图案。我的意思是...就在大门口,索引4再次达到221?!

[0,88,221,310,874,986,1303,1915,2155,2512,3079,3336,3674,4181,4434,4743,5235,8259,8728,10691,12362,13232,14646,20468,22193,22193]

解决方法

我想我有工作。我只是直接引用了文本文件,然后退出尝试以其他方式拉索引并使用枚举。

with open(txt_file,"r") as f:
    text = f.read()
    lines = text.splitlines()
    page_1_indices = []
    for (i,j) in enumerate(lines):
        if "Page 1" in j:
            page_1_indices.append(i)
    print(page_1_indices)

输出:

[0,88,221,310,523,874,986,1167,1303,1392,1476,1691,1915,2062,2155,2295,2512,2719,2868,3079,3214,3336,3517, 3674,3838,3985,4181,4434,4612,4743,4886,5044,5235,5385,5584,5759,5887,6034,6121,6249,6327,6470,6562,6833,7016,7164,7364,7696, 7917,8110,8259,8399,8526,8639,8728,8862,9088,9346,9504,9638,9871,10049,10385,10473,10691,10891,11028,11209,11408,11488,11647,11934,12179, 12362、12541、12627、12830、12918、13075、13232、13304、13489、13578、13749、13968、14104、14226、14385、14507、14646、14867、15159、15295、15386、15543、15671、15851、16063, 16148,16348,16472,16635,16718,16806,16965,17068,17255,17376,17509,17672,17816,18009,18178,18317,18445,18626,18784,18947,19069,19256,19437,19571,19700, 19824、19934、20096、20295、20468、20602、20818、21017、21216、21337、21458、21579、21713、21912、22039、22193、22333、22507、22694、22828、22985、23166、23353、23481、23609, 23731,23883]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?