使用 pdftotext 提取特定数据
Extracting particular data using pdftotext
我正在使用 pdftotext Python 库从 PDF 文档中提取一些数据。
import pdftotext
# Load your PDF
with open("text2.pdf", "rb") as f:
pdf = pdftotext.PDF(f)
# How many pages?
print(len(pdf))
data = "\n\n".join(pdf)
# Read all the text into one string
print(data)
提取的数据为:
Account Name :Mr. SX
Account Name :Mr. XX XX XX
Address : Address detaisls
Date :7 Sep 2021
Account Number :00000031873583221
Account Description :REGULAR SB CHQ-INDIVIDUALS
Branch :SSI
Drawing Power :0.00
整个数据都是字符串,但我只想提取帐号。
我使用正则表达式:
^(Account\s+Number).*$
但无法弄清楚如何从整个字符串中提取数据。
你可以试试:
>>> '\n'.join([re.sub(r'Account Number\s+:', '', line) for line in data.splitlines() if 'Account Number' in line])
'00000031873583221'
>>>
没有正则表达式更容易:
>>> '\n'.join([line.split(':')[-1] for line in data.splitlines() if 'Account Number' in line])
'00000031873583221'
>>>
我正在使用 pdftotext Python 库从 PDF 文档中提取一些数据。
import pdftotext
# Load your PDF
with open("text2.pdf", "rb") as f:
pdf = pdftotext.PDF(f)
# How many pages?
print(len(pdf))
data = "\n\n".join(pdf)
# Read all the text into one string
print(data)
提取的数据为:
Account Name :Mr. SX
Account Name :Mr. XX XX XX
Address : Address detaisls
Date :7 Sep 2021
Account Number :00000031873583221
Account Description :REGULAR SB CHQ-INDIVIDUALS
Branch :SSI
Drawing Power :0.00
整个数据都是字符串,但我只想提取帐号。 我使用正则表达式:
^(Account\s+Number).*$
但无法弄清楚如何从整个字符串中提取数据。
你可以试试:
>>> '\n'.join([re.sub(r'Account Number\s+:', '', line) for line in data.splitlines() if 'Account Number' in line])
'00000031873583221'
>>>
没有正则表达式更容易:
>>> '\n'.join([line.split(':')[-1] for line in data.splitlines() if 'Account Number' in line])
'00000031873583221'
>>>