python统计word文档页码(pdf、doc、docx)
python统计word页码
·
# pip install pdfplumber
import pdfplumber
from pdfminer.pdfparser import PDFSyntaxError
import os
import pandas as pd
#获取pdf文档页数
def get_pdf_page(pdf_path):
try:
f = pdfplumber.open(pdf_path)
page = len(f.pages)
except PDFSyntaxError:
page = 0
return page
import pythoncom
import win32com.client
#获取word文档页数
def get_word_page(word_path):
pythoncom.CoInitialize()
# 调用word程序,不在前台显示
w = win32com.client.Dispatch("Word.Application")
w.Visible = 0
w.DisplayAlerts = 0
# 打开一个word文档
doc = w.Documents.Open(word_path)
# 获取总页数
w.ActiveDocument.Repaginate()
pages = w.ActiveDocument.ComputeStatistics(2)
print(pages)
# 保存并关闭
doc.SaveAs('test.docx')
doc.Close()
return pages
def split_file_type(filepath):
filelist = os.listdir(filepath) # 该文件夹下所有的文件(包括文件夹)
for file in filelist: # 遍历所有文件
Olddir = os.path.join(filepath, file) # 原来的文件路径
print('Olddir:', Olddir)
'''
if os.path.isdir(Olddir): #如果是文件夹则跳过
continue
'''
filename = os.path.splitext(file)[0] # 文件名
print('oldname:', filename)
filetype = os.path.splitext(file)[1] # 文件扩展名
print('filetype', filetype)
if filetype == '.pdf':
print('1')
if __name__ == '__main__':
word_path= "D:/书"
#print('word_path',word_path)
filelist = os.listdir(word_path) # 该文件夹下所有的文件(包括文件夹)
list_content=[]
for file in filelist: # 遍历所有文件
Olddir = os.path.join(word_path, file) # 原来的文件路径
#print('Olddir:', Olddir)
'''
if os.path.isdir(Olddir): #如果是文件夹则跳过
continue
'''
filename = os.path.splitext(file)[0] # 文件名
#print('filename:', filename)
filetype = os.path.splitext(file)[1] # 文件扩展名
print('filetype', filetype)
Newdir = os.path.join(word_path, filename + filetype)
print('Newdir',Newdir)
list_spart=[]
if filetype == '.pdf':
#print('1')
page=get_pdf_page(Newdir)
#print(page)
list_spart.append(filename)
list_spart.append(str(filetype).replace('.',''))
list_spart.append(page)
else:
page=get_word_page(Newdir)
list_spart.append(filename)
list_spart.append(str(filetype).replace('.', ''))
list_spart.append(page)
list_content.append(list_spart)
c_name = ['文件名', '文件类型', '文件页码']
test = pd.DataFrame(columns=c_name, data=list_content) # 数据有三列,列名分别为one,two,three
#// 数据导出为csv
test.to_excel('./text.xlsx',encoding='UTF-8')
更多推荐
已为社区贡献2条内容
所有评论(0)