python3用PyPDF2解析pdf文件,用正则匹配数据

 

    import PyPDF2
    import re

    pdf_file = open('xxx.pdf', mode='rb')
    read_pdf = PyPDF2.PdfFileReader(pdf_file)
    # 获取pdf文件的所有页数
    number_of_pages = read_pdf.getNumPages()
    # print('total_page: ', number_of_pages)
    line_list = []
    # 循环遍历每一页
    for i in range(0, number_of_pages):
        # 读取每一页的内容
        page = read_pdf.getPage(i)
        page_content = page.extractText()
        # 将这一页的内容分割为列表,,并相加所有的页面内容
        line_list += page_content.split()
    # 关闭pdf文件
    pdf_file.close()
    line_buf = ''
    for buf in line_list:
        line_buf = line_buf+' '+buf
    # 匹配数据:第一列和第二列  如:000069.sz  和 100
    # print(line_buf)
    a = re.findall('([0-9]+[0-9]+[0-9]+[0-9]+[0-9]+[0-9]+.[a-z]+[a-z])', line_buf)
    b = re.findall('[0-9]+[0-9]+[0-9]+[0-9]+[0-9]+[0-9]+.[a-z]+[a-z].([0-9,]+)', line_buf)
    # print(b)
    for i in range(0, len(a)):
        a[i] = a[i].upper()
    for i in range(0, len(b)):
        b[i] = int(b[i].replace(',', ''))
    # print(b)
    # 组成字典
    results = dict(zip(a, b))

正则的其他用法:

fp = open(filename,"w")

fp.write(re.search('(StockDescription:)([a-zA-Z]+-[a-zA-Z]+)',line_buf).group(2) +',')

fp.write(time.strftime('%Y%m%d',time.strptime(re.search('(TradeDate:)([0-9]+[a-zA-Z]+[0-9]+)',line_buf).group(2),'%d%B%Y')) +',')

fp.write(re.search('(Price:[A-Z]+)([0-9.,]+)',line_buf).group(2).replace(',','')+',')

fp.close()

 

 

 

 

### 回答1: 对证券公司公告的PDF文档信息提取需要使用Python的PDF解析库和文本处理库。以下是一个基本的程序设计步骤: 1. 安装所需的Python库,如PyPDF2pdfminer.six。 2. 使用PDF解析库打开PDF文件并读取文本内容。 3. 对文本内容进行文本处理,如去除空格、分割句子、提取关键词等。 4. 根据提取的关键词和规则,提取所需的信息,如公司名称、公告类型、公告日期、公告内容等。 5. 将提取的信息保存到数据库或输出到文件中。 下面是一个简单的代码示例,使用PyPDF2库读取PDF文件并提取公司名称和公告内容: ```python import PyPDF2 pdf_file = open('company_announcement.pdf', 'rb') pdf_reader = PyPDF2.PdfReader(pdf_file) # 获取PDF文本内容 text_content = '' for page in pdf_reader.pages: text_content += page.extract_text() # 提取公司名称 company_name = 'ABC公司' # 假设需要提取的公司名称为ABC公司 if company_name in text_content: company_announcement = text_content.split(company_name)[1] else: company_announcement = '' # 输出公告内容 print('公司名称:', company_name) print('公告内容:', company_announcement) ``` 以上代码仅提供了一个简单的示例,实际情况可能需要根据PDF文档的格式和内容进行适当的调整。 ### 回答2: 使用Python进行证券公司公告的PDF文档信息提取可以借助一些开源的库来实现。下面是一个可能的程序设计思路: 1. 首先,使用Python中的第三方库PyPDF2来读取PDF文档。 2. 使用PyPDF2库中的函数打开目标PDF文件,获取页面数。 3. 遍历每一页,使用PyPDF2库中的函数提取文本内容。 4. 对提取的文本内容进行分析和处理,使用正则表达式或其他方法来提取所需的公告信息。例如,可以使用正则表达式找到公告标题、发布日期等信息,并将其存储到相应的变量中。 5. 可以根据需要将提取的信息保存到一个数据结构中,如列表或字典。 6. 最后,根据需要可以将提取的信息进行进一步处理,如将其保存到数据库中或生成可视化报告。 使用Python进行PDF文档信息提取的好处是,Python具有简单易学、强大的文本处理和正则表达式功能,而且有很多相关的第三方库可供选择。其中,PyPDF2库提供了用于提取PDF文档信息的函数,而正则表达式或其他文本处理库可以帮助我们从提取的文本中提取所需的信息。 当然,以上只是一个可能的程序设计思路,具体实现方式还会根据具体需求和PDF文档的格式等因素进行调整和完善。 ### 回答3: 设计一个用Python来提取证券公司公告PDF文件信息的程序,思路如下: 1. 导入所需的Python库,包括PyPDF2用于解析PDF文件,re用于正则表达式匹配,以及其他可能需要用到的库。 2. 打开PDF文件,并使用PyPDF2库来解析文档。将解析的结果保存在一个变量中。 3. 根据PDF文档的结构和格式,使用正则表达式来匹配和提取所需的信息。例如,可以使用正则表达式来匹配公告的标题、日期、股票代码、内容等。 4. 遍历文档的每一页,使用正则表达式来提取所需的信息。可以根据文档的特点,使用不同的正则表达式来匹配不同的信息。 5. 将提取的信息保存在一个数据结构中,例如字典或者列表。 6. 可以根据需要对提取的信息进行进一步的处理,如筛选特定日期的公告、统计某个股票代码的公告数量等。 7. 最后,将提取的信息保存到一个文件中,例如CSV文件或者数据库,以便后续使用和分析。 需要注意的是,不同证券公司的公告PDF文档可能有不同的格式和结构,因此需要针对特定的PDF文档进行适当的调整和优化。可能需要使用不同的正则表达式来匹配不同信息,并进行适当的预处理来处理PDF文档的结构和布局。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值