使用PyPD2搜索术语,使用术语的行号将信息添加到列表的下一行

时间:2018-07-27 06:04:31

标签: python pdf gis pypdf2 pdf-scraping

不好意思,我从来没有使用过PyPD2模块,而是在一个GIS项目中工作,为此我必须从下载的PDF中提取地理坐标。 PDF与PyPD2模块完全兼容。 PDF中的每一页都是相同的,每页包含一组我需要的坐标,所有其他信息均无关。由于我必须解析800多个页面,因此我希望以编程方式将坐标对组织到一个新的单独的文本文件中,以备将来使用。使用.extractText()命令后,坐标始终列为:
...(几行无关的信息)...
纬度:
(#。####)
经度:
(#。####)
...(几行无关的信息)...
坐标之前的行数并不总是相同,而是始终如上列出。我想搜索“纬度”,获取行号,然后将行号+ 1和#。####坐标解析为列表。经度相同。这是我到目前为止的代码:

import PyPDF2

new_file=open('a_coords.txt','w')
file = open('A_REGION.pdf', 'rb')
input1 = pdfreader=PyPDF2.PdfFileReader(file)
last_page = input1.getNumPages()
geo_array = []

for i in range(1, last_page):
coord_list = []
pageobj=pdfreader.getPage(i)
text_file = new_file.write(pageobj.extractText())
lat_word = 'Latitude'
long_word = 'Longitude'

for num, line in enumerate(text_file, 1):
    if lat_word in line:
        next(text_file)
        for lat_num in line:
            coord_list.append(lat_num)
            print(coord_list)
            text_file.truncate(0)

我试图遍历每个页面,创建一个新的文本文件(否则,由于PyPD2导入了一个二进制文本文件,我收到了一条错误消息),搜索“纬度”,获取行号,转到下一行,将下一行的坐标值附加到列表中,然后删除下一页的文本文件。
由于收到错误消息,因此没有进展到收集经度数据:
'代表num,行在enumerate(text_file,1):
TypeError:“ int”对象不可迭代”
对于冗长的解释,深表歉意,对您的帮助将不胜感激。我对Python有点生疏,并且确实在尝试避免手动擦除此数据。

0 个答案:

没有答案