Python counts word document page numbers (pdf, doc, docx)

# 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')



Guess you like

Origin blog.csdn.net/qq_38978225/article/details/128041566