python批量抓取多个pdf文件中固定位置字段

import os
import codecs
import PyPDF2
import pdfplumber


def extract_content(pdf_path):
    # 内容提取,使用 pdfplumber 打开 PDF,用于提取文本
    with pdfplumber.open(pdf_path) as pdf_file:
        # 使用 PyPDF2 打开 PDF 用于提取图片
        pdf_image_reader = PyPDF2.PdfReader(open(pdf_path, "rb"))
        #print(len(pdf_image_reader.pages) )

        content = ''
        # len(pdf.pages)为PDF文档页数,一页页解析
        for i in range(len(pdf_file.pages)):
            #print("当前第 %s 页" % i)
            # pdf.pages[i] 是读取PDF文档第i+1页
            page_text = pdf_file.pages[i]
            # page.extract_text()函数即读取文本内容
            page_content = page_text.extract_text()
            if page_content:
                content = content + page_content + "\n"
                with open('content.txt', mode='w', encoding='utf-8') as f:
                    for i in content:
                        f.write(i)
                    f.close()
        # 将文件中的文本读取出来并存入content.txt中


        f = codecs.open('content.txt', mode='r', encoding='utf-8')  # 打开txt文件,以‘utf-8'编码读取
        line = f.readline()  # 以行的形式进行读取文件
        x = []  # 设置x数组
        while line:
            a = line.split('\r\n')  # 每行数据分隔情况,此数据以“\r\n”分隔
            b = a[0]  # 选取需要读取的数据列数
            x.append(b)  # 将其添加在列表之中
            line = f.readline()
        f.close()  # close文件
        #print(x[9])
        x1 = x[9] # 读取出x列表中第10个的内容
        x2 = x[11]
        with open('version.txt', mode='a', encoding='utf-8') as f:   # 列表中第10个的内容可追加的写入version.txt中
            for i in x1:
                f.write(i)
            f.write("\n")
            f.close()  # close文件
        with open('password.txt', mode='a', encoding='utf-8') as f:
            for i in x2:
                f.write(i)
            f.write("\n")
            f.close()  # close文件

def strip_suffix(filename):
    return filename[:filename.rfind('.')]

# 遍历列表中的所有文件
def pdf_files(file_dir):
    for file in file_dir:
        if not os.path.isdir(file_dir):
            print("usage: python3 csv.py csv_dirname out_putfile")
            return []
        list_csv = []
        dir_list = os.listdir(file_dir)
        for file in dir_list:
            path = os.path.join(file_dir, file)
            if os.path.splitext(path)[1] == '.pdf':
                list_csv.append(path)
        #print(list_csv)
    return list_csv


if __name__ == '__main__':
    file_dir = r'C:\Users\m1317\Desktop\allfiles' #pdf文件位置
    pdf_files = pdf_files(file_dir)
    for pdf_file in pdf_files:
        extract_content(pdf_file)


你可能感兴趣的:(python,pdf,开发语言)