【办公类-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

'''
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文字数量查询

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

'''
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查询文字数量

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

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

相关推荐

  1. 【工具】Word PDF

    2024-03-13 15:12:01       39 阅读
  2. 快速预览图片PDF报告,PDF文字并统计词频

    2024-03-13 15:12:01       37 阅读
  3. 【Python】pptx文件pdf

    2024-03-13 15:12:01       39 阅读
  4. python文件docxpdf

    2024-03-13 15:12:01       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-13 15:12:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-13 15:12:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-13 15:12:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-13 15:12:01       20 阅读

热门阅读

  1. 如何排查 IMKit 用户头像无法加载问题

    2024-03-13 15:12:01       22 阅读
  2. 【云原生】关于解耦和平台化的一些思考

    2024-03-13 15:12:01       21 阅读
  3. 手机天猫等级怎么查

    2024-03-13 15:12:01       24 阅读
  4. Redis 中的字符串数据结构详解及字符串命令

    2024-03-13 15:12:01       21 阅读
  5. 编写Linux的SHELL脚本设置环境变量遇到的那些坑

    2024-03-13 15:12:01       21 阅读
  6. Stable Diffusion如何生成高质量的图-prompt写法介绍

    2024-03-13 15:12:01       20 阅读
  7. LeetCode刷题--- 摆动序列

    2024-03-13 15:12:01       21 阅读
  8. 人事面试提问技巧全攻略

    2024-03-13 15:12:01       21 阅读
  9. TCP并发模型 || select || poll || epoll

    2024-03-13 15:12:01       18 阅读
  10. 大数据开发(HBase面试真题-卷一)

    2024-03-13 15:12:01       22 阅读
  11. 机器学习实验------K-means聚类算法

    2024-03-13 15:12:01       23 阅读
  12. 嵌入式学习日记 25

    2024-03-13 15:12:01       22 阅读
  13. ES6中 字符串的方法

    2024-03-13 15:12:01       20 阅读