欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現(xiàn)常用文本內(nèi)容提取

 更新時間:2025年03月23日 15:26:24   作者:擁抱AI  
在日常工作和學習中,我們經(jīng)常需要從PDF、Word文檔中提取文本,本文將介紹如何使用Python編寫一個文本內(nèi)容提取工具,有需要的小伙伴可以參考下

一、引言

在日常工作和學習中,我們經(jīng)常需要從PDF、Word文檔中提取文本,例如為了數(shù)據(jù)分析和文本處理等。如果手動進行這些操作,不僅費時費力,而且容易出錯。因此,編寫一個文本內(nèi)容提取變得尤為重要。本文將介紹如何使用Python編寫一個文本內(nèi)容提取,該工具可以從PDF、Word文檔中提取文本。

二、文本內(nèi)容提取的原理

文本內(nèi)容提取的核心原理是遍歷指定目錄下的所有文件,根據(jù)文件類型(PDF或Word)使用相應的庫提取文本,然后將提取的文本保存到指定目錄。在這個過程中,我們需要考慮以下幾個問題:

如何遍歷指定目錄下的所有文件?

如何根據(jù)文件類型提取文本?

如何保存提取的文本?

接下來,我們將分別介紹這三個問題的解決方案。

三、文本內(nèi)容提取的設計

在設計文本內(nèi)容提取時,我們需要考慮以下幾個方面的內(nèi)容:

用戶界面:為了方便用戶使用,我們可以設計一個簡單的命令行界面,讓用戶可以輸入目錄、輸出目錄等參數(shù)。

文件遍歷:我們需要編寫一個文件遍歷,用于遍歷指定目錄下的所有文件。

文本提?。何覀冃枰帉懸粋€文本提取,用于根據(jù)文件類型提取文本。

文本保存:我們需要編寫一個文本保存,用于將提取的文本保存到指定目錄。

四、文本內(nèi)容提取的實現(xiàn)

接下來,我們將詳細介紹文本內(nèi)容提取的實現(xiàn)過程。為了方便起見,我們將使用Python編寫這個工具。

1.用戶界面

我們可以使用Python的argparse庫來設計一個簡單的命令行界面。界面包括以下幾個部分:

目錄參數(shù):讓用戶指定需要提取文本的文件所在的目錄。

輸出目錄參數(shù):讓用戶指定提取的文本保存到的目錄。

2.文件遍歷

我們可以使用Python的os庫來遍歷指定目錄下的所有文件。具體實現(xiàn)如下:

import os
def traverse_dir(dir_path):
    file_list = []
    for root, dirs, files in os.walk(dir_path):
        for file in files:
            file_list.append(os.path.join(root, file))
    return file_list

3.文本提取

對于PDF文件,我們可以使用Python的PyPDF2庫來提取文本。具體實現(xiàn)如下:

import PyPDF2
def extract_text_from_pdf(pdf_path, output_path):
    with open(pdf_path, 'rb') as file:
        pdf_reader = PyPDF2.PdfFileReader(file)
        for page_num in range(pdf_reader.numPages):
            page = pdf_reader.getPage(page_num)
            text = page.extractText()
            with open(output_path, 'a', encoding='utf-8') as output_file:
                output_file.write(text)

對于Word文檔,我們可以使用Python的python-docx庫來提取文本。具體實現(xiàn)如下:

from docx import Document
def extract_text_from_docx(docx_path, output_path):
    doc = Document(docx_path)
    text = []
    for para in doc.paragraphs:
        text.append(para.text)
    with open(output_path, 'a', encoding='utf-8') as output_file:
        output_file.write('\n'.join(text))

4.文本保存

我們可以使用Python的os.path.join()函數(shù)來保存提取的文本。具體實現(xiàn)如下:

import os
def save_text(text, output_path):
    with open(output_path, 'w', encoding='utf-8') as output_file:
        output_file.write(text)

五、完整代碼示例

import argparse
import os
import PyPDF2
from docx import Document
def traverse_dir(dir_path):
    file_list = []
    for root, dirs, files in os.walk(dir_path):
        for file in files:
            file_list.append(os.path.join(root, file))
    return file_list
def extract_text_from_pdf(pdf_path, output_path):
    with open(pdf_path, 'rb') as file:
        pdf_reader = PyPDF2.PdfFileReader(file)
        for page_num in range(pdf_reader.numPages):
            page = pdf_reader.getPage(page_num)
            text = page.extractText()
            with open(output_path, 'a', encoding='utf-8') as output_file:
                output_file.write(text)
def extract_text_from_docx(docx_path, output_path):
    doc = Document(docx_path)
    text = []
    for para in doc.paragraphs:
        text.append(para.text)
    with open(output_path, 'a', encoding='utf-8') as output_file:
        output_file.write('\n'.join(text))
def save_text(text, output_path):
    with open(output_path, 'w', encoding='utf-8') as output_file:
        output_file.write(text)
def main():
    parser = argparse.ArgumentParser(description="文本內(nèi)容提取")
    parser.add_argument("directory", help="指定目錄")
    parser.add_argument("output_directory", help="指定輸出目錄")
    args = parser.parse_args()
    dir_path = args.directory
    output_dir = args.output_directory
    file_list = traverse_dir(dir_path)
    for file_path in file_list:
        if file_path.lower().endswith(('.pdf')):
            extract_text_from_pdf(file_path, output_dir)
        elif file_path.lower().endswith(('.docx', '.doc')):
            extract_text_from_docx(file_path, output_dir)
if __name__ == "__main__":
    main()

以上就是Python實現(xiàn)常用文本內(nèi)容提取的詳細內(nèi)容,更多關于Python文本內(nèi)容提取的資料請關注腳本之家其它相關文章!

相關文章

  • Python導入oracle數(shù)據(jù)的方法

    Python導入oracle數(shù)據(jù)的方法

    這篇文章主要介紹了Python導入oracle數(shù)據(jù)的方法,涉及Python讀取csv文件信息再插入到Oracle數(shù)據(jù)庫的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • Python讀入mnist二進制圖像文件并顯示實例

    Python讀入mnist二進制圖像文件并顯示實例

    這篇文章主要介紹了Python讀入mnist二進制圖像文件并顯示實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python cookbook(數(shù)據(jù)結構與算法)篩選及提取序列中元素的方法

    Python cookbook(數(shù)據(jù)結構與算法)篩選及提取序列中元素的方法

    這篇文章主要介紹了Python cookbook(數(shù)據(jù)結構與算法)篩選及提取序列中元素的方法,涉及Python列表推導式、生成器表達式及filter()函數(shù)相關使用技巧,需要的朋友可以參考下
    2018-03-03
  • Pyecharts 中Geo函數(shù)常用參數(shù)的用法說明

    Pyecharts 中Geo函數(shù)常用參數(shù)的用法說明

    這篇文章主要介紹了Pyecharts 中Geo函數(shù)常用參數(shù)的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Python Pandas創(chuàng)建Dataframe數(shù)據(jù)框的六種方法匯總

    Python Pandas創(chuàng)建Dataframe數(shù)據(jù)框的六種方法匯總

    這篇文章主要介紹了Python中的Pandas創(chuàng)建Dataframe數(shù)據(jù)框的六種方法,創(chuàng)建Dataframe主要是使用pandas中的DataFrame函數(shù),其核心就是第一個參數(shù):data,傳入原始數(shù)據(jù),因此我們可以據(jù)此給出六種創(chuàng)建Dataframe的方法,需要的朋友可以參考下
    2023-05-05
  • python保存文件方法小結

    python保存文件方法小結

    這篇文章主要介紹了python保存文件方法小結,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • 14 個Python小游戲 源碼分享

    14 個Python小游戲 源碼分享

    今天給大家?guī)?4個py小游戲如:吃金幣、打乒乓、滑雪、并夕夕版飛機大戰(zhàn)、打地鼠、小恐龍、消消樂、俄羅斯方塊、貪吃蛇、24點小游戲、平衡木、外星人入侵、貪心鳥、井字棋888‘’,文章都帶了源碼,感興趣的小伙伴感快收藏起來吧
    2021-09-09
  • python 分離文件名和路徑以及分離文件名和后綴的方法

    python 分離文件名和路徑以及分離文件名和后綴的方法

    今天小編就為大家分享一篇python 分離文件名和路徑以及分離文件名和后綴的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python wxPython庫消息對話框MessageDialog用法示例

    Python wxPython庫消息對話框MessageDialog用法示例

    這篇文章主要介紹了Python wxPython庫消息對話框MessageDialog用法,結合實例形式簡單分析了wxPython庫的基本事件與相關使用技巧,需要的朋友可以參考下
    2018-09-09
  • python實現(xiàn)圖像的隨機增強變換

    python實現(xiàn)圖像的隨機增強變換

    這篇文章主要為大家介紹了如何利用pythons制作一個小工具工具,可以實現(xiàn)圖像的隨機增強變換,可用于分類訓練數(shù)據(jù)的增強,有需要的可以參考下
    2024-11-11

最新評論