首页 > 编程语言 >python: using pdfplumber Lib read pdf file

python: using pdfplumber Lib read pdf file

时间:2023-07-06 22:33:09浏览次数:42  
标签:PatternFill Lib python data ws1 path pdfplumber border fill

 

from openpyxl import Workbook
from openpyxl.styles import PatternFill,Side,Border
import pdfplumber




l=[]
def visitDir(path):
    if not os.path.isdir(path):
        print('Error:"',path,'" is not a directory or does not exist.')
        return
    list_dirs = os.walk(path) #os.walk返回一个元组,包括3个元素:#所有路径名、所有目录列表与文件列表
    for root, dirs, files in list_dirs:      #遍历该元组的目录和文件信息
        for f in files:
            if f.endswith(".pdf"):
                l.append(os.path.join(root, f))
def writeExcel(l):
    wb = Workbook()
    ws1 = wb.active
    data =[]
    for i in l:
        with pdfplumber.open(i) as pdf:
            for page in pdf.pages:
                textdata =page.extract_text()
                l = textdata.split()
                data.append(l)
    border=Border(top=Side(border_style='thin',color='000000'),
                 bottom=Side(border_style='thin',color='000000'),
                 left=Side(border_style='thin',color='000000'),
                 right=Side(border_style='thin',color='000000'))
    ws1["A1"]="合同序号"
    ws1["B1"]="合同名称"
    ws1["C1"]="合同金额"
    ws1["A1"].fill=PatternFill(fill_type='solid', fgColor="8B008B")
    ws1["B1"].fill=PatternFill(fill_type='solid', fgColor="8B008B")
    ws1["C1"].fill=PatternFill(fill_type='solid', fgColor="8B008B")
    ws1["A1"].border = border
    ws1["B1"].border = border
    ws1["C1"].border = border
    fill = PatternFill(fill_type='solid', fgColor="FFC0CB")
    for i in range(len(data)):
        for j in range(len(data[0])):
            ws1.cell(i+2,j+1,data[i][j]).fill=fill
            ws1.cell(i+2,j+1,data[i][j]).border=border

    wb.save("data/合同信息导出.xlsx")
    wb.close()


if __name__ == '__main__':
    print_hi('PyCharm,geovin du study')

    visitDir('data')
    writeExcel(l)

  

标签:PatternFill,Lib,python,data,ws1,path,pdfplumber,border,fill
From: https://www.cnblogs.com/geovindu/p/17533527.html

相关文章

  • python列表(一)
    列表由一系列按特定顺序排列的元素组成。bicycles=['trek','cannondale','redline','specialized']print(bicycles)1.访问列表元素#索引print(bicycles[0])#最后一个元素print(bicycles[-1])#倒数第二个元素print(bicycles[-2])2.修改、添加和删除元素2.1......
  • python基础day39 生产者消费者模型和线程相关
    如何查看进程的id号进程都有几个属性:进程名、进程id号(pid--->processid)每个进程都有一个唯一的id号,通过这个id号就能找到这个进程importosimporttimedeftask():print("task中的子进程号:",os.getpid())print("主进程中的进程号:",os.getppid())#parent......
  • 多线程python
    如何开启进程使用的是内置的模块:multiprocessfrommultiprocessingimportProcessdeftask():withopen('a.txt','w',encoding="utf8")asf:f.write('helloworld')#开一个进程来执行task这个任务#如何开进程"""在Wind......
  • Logistic回归模型,python
    代码参考https://blog.csdn.net/DL11007/article/details/129204192?ops_request_misc=&request_id=&biz_id=102&utm_term=logistic%E6%A8%A1%E5%9E%8Bpython&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-129204192.142^v......
  • Python中标准输入(stdin)、标准输出(stdout)、标准错误(stdout)的用法
    1.标准输入input()、raw_input()Python3.x中input()函数可以实现提示输入,python2.x中要使用raw_input(),例如:foo=input("Enter:")#python2.x要用raw_input()print("Youinput:[%s]"%(foo))#测试执行Enter:abcdeYouinput:[abcde]#读取一行(不......
  • Python中os.system()、subprocess.run()、call()、check_output()的用法
    1.os.system()os.system()是对C语言中system()系统函数的封装,允许执行一条命令,并返回退出码(exitcode),命令输出的内容会直接打印到屏幕上,无法直接获取。示例:#test.pyimportosos.system("ls-l|greptest")#允许管道符#测试执行$ll<=======......
  • Python中startswith()和endswith()方法
    startswith()方法startswith()方法用于检索字符串是否以指定字符串开头,如果是返回True;反之返回False。endswith()方法endswith()方法用于检索字符串是否以指定字符串结尾,如果是则返回True;反之则返回Falses='helloword'print("s.startswith('wor'):",s.startswith('wor......
  • 【Python】多维列表变为一维列表的方法--numpy
    转载:(18条消息)【Python】多维列表变为一维列表的方法_四维列表变一维_Vincent__Lai的博客-CSDN博客题目给定一个多维列表,怎么让其变为一维?例如,输入:[[1,4],[2],[3,5,6]],输出:[1,4,2,3,5,6]常规一行做法a=[[1,4],[2],[3,5,6]]a=[jforiinaforjini......
  • 将PYTHON包环境从一个电脑拷贝到另外一个电脑
    将PYTHON包环境从一个电脑拷贝到另外一个电脑1、在当前电脑复制D:\ProgramFiles\Python\Python311\Lib中的所有文件生成myrequirement.txt文件pipfreeze>myrequirement.txtmyrequirement.txt文件如下:colorama==0.4.6constantly==15.1.0cpca==0.5.5cryptography=......
  • python pydoc模块生成html网页版内容
    pydoc是一个能生成网页版的模块,内置模块命令:python-mpydoc-p1234-m加载模块-p网页访问端口命令行:b打开浏览器q退出效果:Windows环境下:python-mpydoc-watexit//在当前目录创建atexit.htmlpython-mpydoc-p5000//启动一个Web服务器监听h......