【办公类-41-01】20240312 每篇pdf文献有多少字(pdf转TXT 求字数)

作品展示------查询文献字数

背景需求:

领导:把这份里面的所有文献下载后,查看每篇有多少字

打开www.caj11.com(买了终身会员)查询并下载

输入文献名称

点击下载

这是所有下载后的文件(14个PDF和1个CAJ)

需要查询每篇里面的文字数量

使用AI对话大师,获得代码并反复调试,结果发现

1、无法直接读取PDF和caj的文字数量

2、可以通过pdf转txt,获取txt的文字数量。

3、无法将caj转TXT。

一、PDF转docx

测试1-1:将PDF和caj转成docx

python 复制代码
'''
pdf转docx
作者:AI对话大师、阿夏
时间:2024年3月11日
'''

import os
from pdf2docx import Converter

def convert_to_docx(folder_path, extensions):
    for root, dirs, files in os.walk(folder_path):
        for file in files:
            file_extension = os.path.splitext(file)[1]

            if file_extension.lower() in extensions:
                file_path = os.path.join(root, file)
                output_path = os.path.splitext(file_path)[0] + '.docx'

                if file_extension.lower() == '.pdf':
                    cv = Converter(file_path)
                    cv.convert(output_path)
                    cv.close()


folder_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\下载文献'
extensions = ['.pdf', '.caj']
convert_to_docx(folder_path, extensions)

CAJ转不了docx

测试1-2:将docx文字数量查询

python 复制代码
'''
pdf转docx docx有多少字
作者:AI对话大师、阿夏
时间:2024年3月11日
'''
# 检测docx有多少字
from docx import Document
import os

folder_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\下载文献'

for file_name in os.listdir(folder_path):
    if file_name.endswith(".docx"):
        docx_path = os.path.join(folder_path, file_name)
        doc = Document(docx_path)
        total_characters = 0
        for paragraph in doc.paragraphs:
            total_characters += len(paragraph.text)
        print(f"File: {file_name}, Total Characters: {total_characters}")

其实两者字数也有一定差异。

二、PDF转txt

测试2.1 pdf转txt

python 复制代码
'''
pdf转成txt后查看每篇文字数量
作者:AI对话大师、阿夏
作者:2024年3月11日
'''

print('------1、pdf转 txt------------')
import os
import fitz

# 定义输入和输出文件夹路径
input_folder = r'C:\Users\jg2yXRZ\OneDrive\桌面\下载文献'
output_folder = input_folder

# 获取输入文件夹中的所有PDF文件
pdf_files = [f for f in os.listdir(input_folder) if f.endswith(".pdf")]

# 遍历文件列表
for pdf_file in pdf_files:
    # 打开PDF文件
    pdf_path = os.path.join(input_folder, pdf_file)
    pdf_document = fitz.open(pdf_path)
    
    # 逐页读取文本内容
    text = ""
    for page_num in range(pdf_document.page_count):
        page = pdf_document[page_num]
        text += page.get_text()
    
    # 构建输出文件路径
    output_file = os.path.join(output_folder, pdf_file.replace(".pdf", ".txt"))
    
    # 将文本内容写入输出文件
    with open(output_file, 'w', encoding='utf-8') as f:
        f.write(text)
    
    pdf_document.close()

print("PDF文件已成功转换为TXT文件。")

测试2.1 txt查询文字数量

python 复制代码
'''
# pdf转成txt后查看每篇文字数量2
# 作者:AI对话大师、阿夏
# 作者:2024年3月11日
'''
print('-----2、txt的字数------------')
import os

def count_text_characters(file_path, encoding):
    with open(file_path, 'r', encoding=encoding, errors='ignore') as file:
        text = file.read()
        return len(text)

# 遍历文件夹下的所有txt文件
folder_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\下载文献'
for file_name in os.listdir(folder_path):
    file_path = os.path.join(folder_path, file_name)
    if os.path.isfile(file_path) and file_path.endswith('.txt'):
        try:
            characters = count_text_characters(file_path, 'utf-8')
        except UnicodeDecodeError:
            characters = count_text_characters(file_path, 'utf-16')
        print(f"文件: {file_name},文字数量: {characters}")

感觉TXT字数也不是一模一样的数字。只是一个大致的字数范围。

最后发给领导统计结果------字数在8000-22000之间,平均是15000字

不过我对这个字符结果也存在疑问。

相关推荐
hi星尘3 小时前
深度解析:基于Python的微信小程序自动化操作实现
python·微信小程序·自动化
Doker 多克4 小时前
Django 缓存框架
python·缓存·django
miracletiger6 小时前
uv 新的包管理工具总结
linux·人工智能·python
我不会编程5556 小时前
Python Cookbook-6.10 保留对被绑定方法的引用且支持垃圾回收
开发语言·python
ʚɞ 短腿欧尼6 小时前
关系数据的可视化
python·pycharm·可视化·数据可视化·图表
PXM的算法星球9 小时前
【软件工程】面向对象编程(OOP)概念详解
java·python·软件工程
Humbunklung9 小时前
PySide6 GUI 学习笔记——常用类及控件使用方法(常用类矩阵QRectF)
笔记·python·学习·pyqt
蹦蹦跳跳真可爱5899 小时前
Python----深度学习(基于DNN的吃鸡预测)
python·深度学习·dnn
JJ1M810 小时前
Git技巧:Git Hook,自动触发,含实战分享
git·python·自动化
拓端研究室TRL10 小时前
PyMC+AI提示词贝叶斯项目反应IRT理论Rasch分析篮球比赛官方数据:球员能力与位置层级结构研究
大数据·人工智能·python·算法·机器学习