本文实现Python统计pdf中中文字符的个数。
一、要统计中文字符的pdf文档
首先看下要统计中文字符的pdf长什么样。
二、识别pdf中的字符
接着应用pdfplumber库识别pdf中的字符,具体代码如下:
import pdfplumber as plb
file_path = r'F:\公众号\77_pdf中文字数统计\cs1.pdf'
#识别所有页的文字
with plb.open(file_path) as pdf:
k = 1
for page in pdf.pages:
print(' ')
print('第',k, '页')
print(page.extract_text())
k += 1
参数详解:
file_path:pdf文件存放路径。
plb.open:打开pdf文件。
page.extract_text():获取该页pdf的文字内容。
得到结果:
第 1 页
浙江钱江摩托股份有限公司
董事会环境、社会及治理(ESG)委员会
工作细则
第一章 总 则
第一条 为保证浙江钱江摩托股份有限公司(以下简称“公司”)发展
规划和战略决策的科学性,进一步完善公司治理结构,发展并落实公司环境、
社会和公司治理工作(以下简称“ESG”)。根据《中华人民共和国公司法》(
以下简称“《公司法》”)《上市公司治理准则》及《深圳证券交易所上市
公司自律监管指引第1号-主板上市公司规范运作》规定,公司董事会设立环
境、社会及治理委员会(以下简称“ESG委员会”),并制定本工作细则。
第二条 ESG委员会以实现企业高质量可持续发展为目标,致力于推动
公司的环境、社会及治理的发展。ESG委员会负责设定公司ESG发展目标、识
别ESG相关机遇与风险、监督ESG执行等工作,发挥ESG理念在助力公司高质
量发展中的作用和意义。
第二章 人员组成
第三条 ESG委员会成员由三名董事组成,委员中至少有一名独立董事。
委员会委员由董事长、二分之一以上独立董事或者全体董事的三分之一以上
提名,并由董事会过半数选举产生。
第四条 ESG委员会设主任委员(召集人)一名,由委员会全体成员三分
之二以上选举产生,负责召集并主持委员会会议。主任委员不能履行职责时,
由主任委员指定一名委员代行其职责;主任委员未指定时,任何一名委员均
可将有关情况向公司董事会报告,由公司董事会指定一名委员履行ESG委员
会召集人职责。
第五条 ESG委员会任期与董事会成员任期一致,委员任期届满,连选
可以连任。委员任期届满前,除非出现《公司法》、公司章程或本工作细则
规定的不得任职的情形,不得被无故解除职务。期间如有委员不再担任公司
第 2 页
董事职务,自动失去委员资格,由董事会根据公司章程及本工作细则规定补
足委员人数。
因委员辞职、被免职或其他原因导致ESG委员会人数少于本工作细则第
三条规定人数时,公司董事会应尽快选举产生新的委员。ESG委员会委员在
人数达到本工作细则第三条规定以前,暂停行使本工作细则规定的职权,由
公司董事会行使相关职权。
第六条 ESG委员会委员应了解并掌握公司经营的全面情况、国内外行
业现状及国家、地方政府及证券监管机构制定的ESG相关法规和政策,具备
战略眼光,能够识别对公司发展具有重大影响的ESG相关风险和机遇,能够
为公司ESG管理提升提供指引,并有能力管控公司ESG工作的发展和落实。
第七条 ESG委员会可下设ESG工作组,负责委员会日常事务及执行委员
会决议,包括但不限于筹备委员会会议、执行公司ESG的具体工作。
第三章 职责权限
第八条 ESG委员会的主要职责权限:
(一)关注ESG发展趋势,确保公司的ESG战略及规划与时俱进,且符合适
用的法律、监管要求;
(二)对公司ESG工作开展研究、分析和评估,提出ESG发展建议,提升公
司ESG治理能力;
(三)监督公司各业务板块的ESG体系运行,审查公司业务对环境、社会
的影响,并就提升公司ESG议题表现提供建议及方案;
(四)定期向董事会汇报公司ESG相关工作,及时反馈公司ESG工作进展、
内外部利益相关方对企业的关注议题并针对公司ESG管理提出提升建议;
(五)审议公司ESG相关报告,如涉及董事会审议事项,则提交董事会审
议批准并披露;
(六)公司董事会授权的其他事宜及相关法律法规中涉及的其他事项。
第九条 ESG委员会主任委员主要职责:
(一)召集并主持委员会定期会议;
(二)特殊情况下,召集并主持委员会临时会议;
(三)主持委员会的日常工作;
(四)董事会和委员会授予的其他职责。
第 3 页
第十条 公司应向ESG委员会提供充足资源以履行其职责。ESG委员会
履行职责时,公司相关部门应给予配合,所需费用由公司承担。
第十一条 董事会秘书负责委员会日常联络和会议组织工作,主要履行
如下职责:
(一)负责委员会、委员会工作支持部门的日常联络;
(二)负责组织安排委员会会议,组织编制会议材料;
(三)列席委员会会议,负责会议记录、并将委员会审议通过的提案
提交董事会审议;
(四)跟进委员会审议提案批准后的执行情况,有权督促委员会工作
支持部门配合落实。
第四章 议事规则
第十二条 ESG委员会分为定期会议和临时会议。定期会议每年至少召
开一次;会议由ESG委员会主任委员召集和主持,委员会主任委员不能主持
会议履行职责时,应指定一名委员代为履行职责。委员会主任委员或半数以
上委员联名可要求召开临时会议。会议通知须于会议召开前3天送达全体委
员,但紧急情况下可不受前述通知时限限制。
第十三条 ESG委员会会议应由委员本人出席。委员因故不能出席的,
可以书面委托其他委员代为出席,代为出席会议的委员应在授权范围内代表
委托人行使权利。
第十四条 ESG委员会会议应由半数以上的委员出席方可举行;每一名
委员有一票的表决权;会议做出的决议,须经全体委员的过半数通过。
第十五条 ESG委员会会议可以采用现场会议或通讯方式召开。委员会
会议表决方式为举手表决、记名投票表决、通讯表决及法律法规允许的其他
方式。通讯形式包括但不限于电话、视频、书面等方式。
第十六条 ESG委员会会议必要时可邀请公司其他董事、监事及高级管
理人员列席会议。列席人员没有表决权。
第十七条 根据审议工作需要,委员会可以聘请中介机构为其决策提
供专业意见,费用由公司支付。
第十八条 ESG委员会现场会议应当有记录。出席会议的委员应当在会
议记录上签字;会议记录由公司董事会秘书妥善保存。
第 4 页
第十九条 ESG委员会会议通过的议案及表决结果,须以书面形式提交
公司董事会。
第二十条 出席会议的所有人均对会议所议事项有保密义务,不得违
反公司《信息披露管理制度》等有关规定擅自披露有关信息。
第五章 附 则
第二十一条 本工作细则自董事会审议通过之日起施行,由董事会负
责修订、解释。
第二十二条 本工作细则未尽事宜,按国家有关法律、法规和公司章
程的规定执行;本工作细则如与国家日后颁布的法律、法规或经合法程序修
改后的公司章程相抵触时,按国家有关法律、法规和公司章程的规定执行,
并及时修订本工作细则,报董事会审议通过。
三、统计单个pdf中字符数量应用translate函数把无需计数的符号去掉,再用len函数统计单页字符数,最后通过循环的方式加总所有页的字符数,得到单个pdf中字符数量。具体代码如下:
pdf_wods = 0
with plb.open(file_path) as pdf:
k = 1
for page in pdf.pages:
print(' ')
print('第',k, '页')
#使用translate()删除多个字符
pg = page.extract_text()
del_f = [' ', '\n', '\s', '!', '.', '(', ')', ';', '-', '/', ':', ',', '。', '、', ';', '《', '》', '“', '”', ':','(', ')']
for j in del_f:
pg = pg.translate({ ord(i): '' for i in j})
print(pg)
print('该页字符的数量:', len(pg))
pdf_wods += len(pg)
k += 1
print(' ')
print('该pdf中字符的数量:', pdf_wods)
参数详解:
del_f:文章中待删除的空格,换行符,逗号,句号,感叹号等符号,可根据文章内容调整。
pg.translate({ ord(i): '' for i in j}):删除pg中的指定符号。
len(pg):求字符串的长度。
得到结果:
第 1 页
浙江钱江摩托股份有限公司董事会环境社会及治理ESG委员会工作细则第一章总则第一条为保证浙江钱江摩托股份有限公司以下简称公司发展规划和战略决策的科学性进一步完善公司治理结构发展并落实公司环境社会和公司治理工作以下简称ESG根据中华人民共和国公司法以下简称公司法上市公司治理准则及深圳证券交易所上市公司自律监管指引第1号主板上市公司规范运作规定公司董事会设立环境社会及治理委员会以下简称ESG委员会并制定本工作细则第二条ESG委员会以实现企业高质量可持续发展为目标致力于推动公司的环境社会及治理的发展ESG委员会负责设定公司ESG发展目标识别ESG相关机遇与风险监督ESG执行等工作发挥ESG理念在助力公司高质量发展中的作用和意义第二章人员组成第三条ESG委员会成员由三名董事组成委员中至少有一名独立董事委员会委员由董事长二分之一以上独立董事或者全体董事的三分之一以上提名并由董事会过半数选举产生第四条ESG委员会设主任委员召集人一名由委员会全体成员三分之二以上选举产生负责召集并主持委员会会议主任委员不能履行职责时由主任委员指定一名委员代行其职责主任委员未指定时任何一名委员均可将有关情况向公司董事会报告由公司董事会指定一名委员履行ESG委员会召集人职责第五条ESG委员会任期与董事会成员任期一致委员任期届满连选可以连任委员任期届满前除非出现公司法公司章程或本工作细则规定的不得任职的情形不得被无故解除职务期间如有委员不再担任公司
该页字符的数量:614
第 2 页
董事职务自动失去委员资格由董事会根据公司章程及本工作细则规定补足委员人数因委员辞职被免职或其他原因导致ESG委员会人数少于本工作细则第三条规定人数时公司董事会应尽快选举产生新的委员ESG委员会委员在人数达到本工作细则第三条规定以前暂停行使本工作细则规定的职权由公司董事会行使相关职权第六条ESG委员会委员应了解并掌握公司经营的全面情况国内外行业现状及国家地方政府及证券监管机构制定的ESG相关法规和政策具备战略眼光能够识别对公司发展具有重大影响的ESG相关风险和机遇能够为公司ESG管理提升提供指引并有能力管控公司ESG工作的发展和落实第七条ESG委员会可下设ESG工作组负责委员会日常事务及执行委员会决议包括但不限于筹备委员会会议执行公司ESG的具体工作第三章职责权限第八条ESG委员会的主要职责权限一关注ESG发展趋势确保公司的ESG战略及规划与时俱进且符合适用的法律监管要求二对公司ESG工作开展研究分析和评估提出ESG发展建议提升公司ESG治理能力三监督公司各业务板块的ESG体系运行审查公司业务对环境社会的影响并就提升公司ESG议题表现提供建议及方案四定期向董事会汇报公司ESG相关工作及时反馈公司ESG工作进展内外部利益相关方对企业的关注议题并针对公司ESG管理提出提升建议五审议公司ESG相关报告如涉及董事会审议事项则提交董事会审议批准并披露六公司董事会授权的其他事宜及相关法律法规中涉及的其他事项第九条ESG委员会主任委员主要职责一召集并主持委员会定期会议二特殊情况下召集并主持委员会临时会议三主持委员会的日常工作四董事会和委员会授予的其他职责
该页字符的数量:680
第 3 页
第十条公司应向ESG委员会提供充足资源以履行其职责ESG委员会履行职责时公司相关部门应给予配合所需费用由公司承担第十一条董事会秘书负责委员会日常联络和会议组织工作主要履行如下职责一负责委员会委员会工作支持部门的日常联络二负责组织安排委员会会议组织编制会议材料三列席委员会会议负责会议记录并将委员会审议通过的提案提交董事会审议四跟进委员会审议提案批准后的执行情况有权督促委员会工作支持部门配合落实第四章议事规则第十二条ESG委员会分为定期会议和临时会议定期会议每年至少召开一次会议由ESG委员会主任委员召集和主持委员会主任委员不能主持会议履行职责时应指定一名委员代为履行职责委员会主任委员或半数以上委员联名可要求召开临时会议会议通知须于会议召开前3天送达全体委员但紧急情况下可不受前述通知时限限制第十三条ESG委员会会议应由委员本人出席委员因故不能出席的可以书面委托其他委员代为出席代为出席会议的委员应在授权范围内代表委托人行使权利第十四条ESG委员会会议应由半数以上的委员出席方可举行每一名委员有一票的表决权会议做出的决议须经全体委员的过半数通过第十五条ESG委员会会议可以采用现场会议或通讯方式召开委员会会议表决方式为举手表决记名投票表决通讯表决及法律法规允许的其他方式通讯形式包括但不限于电话视频书面等方式第十六条ESG委员会会议必要时可邀请公司其他董事监事及高级管理人员列席会议列席人员没有表决权第十七条根据审议工作需要委员会可以聘请中介机构为其决策提供专业意见费用由公司支付第十八条ESG委员会现场会议应当有记录出席会议的委员应当在会议记录上签字会议记录由公司董事会秘书妥善保存
该页字符的数量:693
第 4 页
第十九条ESG委员会会议通过的议案及表决结果须以书面形式提交公司董事会第二十条出席会议的所有人均对会议所议事项有保密义务不得违反公司信息披露管理制度等有关规定擅自披露有关信息第五章附则第二十一条本工作细则自董事会审议通过之日起施行由董事会负责修订解释第二十二条本工作细则未尽事宜按国家有关法律法规和公司章程的规定执行本工作细则如与国家日后颁布的法律法规或经合法程序修改后的公司章程相抵触时按国家有关法律法规和公司章程的规定执行并及时修订本工作细则报董事会审议通过
该页字符的数量:231
该pdf中字符的数量:2218
可以发现统计出来的pdf字符数量为2218。
四、统计文件夹中所有pdf的字符数量
首先,把所有要统计中文字符数量的pdf放到一个文件夹中,应用python识别所有文件的名称,代码如下: import os path = r"F:\公众号\77_pdf中文字数统计" #文件夹目录 files= os.listdir(path) #得到文件夹下的所有文件名称 files 得到结果: ['cs1.pdf', 'cs2.pdf'] 为了使文章更清晰,本文只放了两个测试pdf文件,实际使用时可以推广到任意个pdf文件。 接着定义函数统计文件夹中所有文件的中文字符数量,代码如下: def cal_pdf_wods(pdf_name): ''' pdf_name:要统计的pdf名称 pdf_wods:统计的pdf字符数量 ''' pdf_wods = 0 with plb.open(file_path) as pdf: for page in pdf.pages: #使用translate()删除多个字符 pg = page.extract_text() del_f = [' ', '\n', '\s', '!', '.', '(', ')', ';', '-', '/', ':', ',', '。', '、', ';', '《', '》', '“', '”', ':','(', ')'] for j in del_f: pg = pg.translate({ ord(i): '' for i in j}) pdf_wods += len(pg) return pdf_wods for file in files: file_path = path + '\\' + file print(file_path) print('字符数量为', cal_pdf_wods(file_path)) print('') 得到结果: F:\公众号\77_pdf中文字数统计\cs1.pdf 字符数量为 2218 F:\公众号\77_pdf中文字数统计\cs2.pdf 字符数量为 11625 至此,Python统计pdf中“中文”字符个数已讲解完毕,需要的朋友可以自己跟着代码尝试一遍
往期回顾: