最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)將PDF文件拆分任意頁數(shù)

 更新時間:2025年02月12日 09:49:03   作者:py小王子  
PyMuPDF,簡稱fitz,是一個輕量級的Python庫,它簡化和封裝了PyMuPDF的功能,使得在Python中處理PDF文件更加簡單,下面我們來看看如何使用他將PDF拆分任意頁數(shù)

一、簡介

PyMuPDF,簡稱fitz,是一個輕量級的Python庫,它基于MuPDF的C++庫,提供了豐富的功能,包括但不限于PDF的讀取、編輯、轉(zhuǎn)換和渲染。Fitz作為PyMuPDF的子模塊,簡化和封裝了PyMuPDF的功能,使得在Python中處理PDF文件更加簡單。

二、安裝

PyMuPDF(包含fitz模塊)可以通過Python的包管理器pip來安裝。

在命令行工具中輸入以下命令:

pip install PyMuPDF

這將從Python包索引下載并安裝PyMuPDF及其依賴項(xiàng)。

或者

三、基本功能

1、打開PDF文件

使用fitz.open()函數(shù)可以打開一個PDF文件,并返回一個表示該文件的對象。例如:

import fitz 
doc = fitz.open("example.pdf")

2、獲取頁面數(shù)量

通過page_count屬性可以獲取PDF文件的總頁數(shù)。例如:

page_count = doc.page_count  
print("Number of pages:", page_count)

3、提取文本

使用get_text()方法可以提取當(dāng)前頁面的所有文本。例如:

text = page.get_text()  
print("Extracted text:", text)

此外,還可以遍歷文檔中的每一頁,提取每一頁的文本。

4、保存修改后的PDF

使用save()方法可以保存對PDF文件所做的更改。例如:

doc.save("modified_example.pdf")

其他功能:

  • 插入新的頁面:使用fitz.new_page()創(chuàng)建新頁面,然后使用insert_pdf()方法將新頁面插入到指定位置。
  • 合并多個PDF文件:創(chuàng)建一個空的PDF文檔對象,然后遍歷要合并的PDF文件,將它們的頁面插入到新的文檔對象中,最后保存合并后的PDF。
  • 提取PDF中的圖片:遍歷PDF的每一頁,使用get_images()方法獲取頁面上的所有圖像,并保存它們。
  • 提取PDF中的表格:使用find_tables()方法獲取頁面上的表格,然后可以將表格數(shù)據(jù)保存為CSV格式文件。 四、應(yīng)用場景

四、應(yīng)用場景

PyMuPDF(fitz)適用于需要處理PDF文件的各種場景,如文本提取、頁面操作、PDF合并與分割等。它以其快速、高效和易于使用而著稱,是處理PDF文件的理想選擇。

例如:PDF文件拆分任意頁數(shù).py

import fitz
import os
 
 
def split_pdf(pdf_path):
    # 檢查輸入的PDF文件是否存在
    if not os.path.exists(pdf_path):
        print("您輸入的路徑無pdf文件!")
        return
 
        # 打開pdf文件
    doc = fitz.open(pdf_path)
    page_count = len(doc)
    print(f"該pdf文件頁數(shù)為:{page_count}")
 
    while True:
        # 獲取起始頁碼(0基索引)
        page_num1 = None
        while True:
            try:
                user_input = input("請輸入您拆分的起始頁碼(輸入q/Q退出):")
                if user_input.lower() == 'q':
                    doc.close()
                    return
                page_num1 = int(user_input) - 1
                if page_num1 < 0 or page_num1 >= page_count:
                    print("起始頁碼無效,請重新輸入。")
                else:
                    break
            except ValueError:
                print("請輸入有效的起始頁碼或q/Q退出。")
 
        # 獲取結(jié)束頁碼(0基索引)
        page_num2 = None
        while True:
            try:
                user_input = input("請輸入您拆分的截止頁碼(輸入q/Q退出):")
                if user_input.lower() == 'q':
                    doc.close()
                    return
                page_num2 = int(user_input) - 1
                if page_num2 < 0 or page_num2 >= page_count:
                    print("截止頁碼無效,請重新輸入。")
                else:
                    break
            except ValueError:
                print("請輸入有效的截止頁碼或q/Q退出。")
 
        # 創(chuàng)建一個新的PDF文檔并插入指定的頁面范圍
        new_doc = fitz.open()
        new_doc.insert_pdf(doc, from_page=page_num1, to_page=page_num2)
 
        # 獲取用戶輸入的PDF基礎(chǔ)名字和保存目錄
        pdf_base_name = input("請輸入您的PDF基礎(chǔ)名字:")
        if not pdf_base_name.lower().endswith('.pdf'):
            pdf_name = f"{pdf_base_name}_{page_num1 + 1}-{page_num2 + 1}.pdf"
        else:
            pdf_name = f"{pdf_base_name[:-4]}_{page_num1 + 1}-{page_num2 + 1}.pdf"
 
        save_dir = input("請輸入您想要保存PDF的目錄(例如:C:/Users/YourName/Documents/):")
        # 確保目錄末尾有斜杠,并檢查目錄是否存在
        if not save_dir.endswith(os.sep) and save_dir != "":
            save_dir += os.sep
        os.makedirs(save_dir, exist_ok=True)
 
        output_path = os.path.join(save_dir, pdf_name)
        new_doc.save(output_path)
        new_doc.close()
        print(f"Saved: {output_path}")
 
        # 檢查是否繼續(xù)拆分或退出
        is_continue = input("是否繼續(xù)拆分其他頁面范圍(q/Q退出)?").strip().lower()
        if is_continue == 'q':
            doc.close()
            break
 
 
# 調(diào)用函數(shù)進(jìn)行PDF拆分
 
pdf_path = input("請輸入您需要拆分的PDF路徑:")
split_pdf(pdf_path)

到此這篇關(guān)于Python實(shí)現(xiàn)將PDF文件拆分任意頁數(shù)的文章就介紹到這了,更多相關(guān)Python PDF拆分內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python字符與ASCII碼相互轉(zhuǎn)換方法

    Python字符與ASCII碼相互轉(zhuǎn)換方法

    在做python編程時,碰到了需要將字母轉(zhuǎn)換成ascii碼的需求,所以下面這篇文章主要給大家介紹了關(guān)于Python字符與ASCII碼相互轉(zhuǎn)換的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • python的pywebview庫結(jié)合Flask和waitress開發(fā)桌面應(yīng)用程序完整代碼

    python的pywebview庫結(jié)合Flask和waitress開發(fā)桌面應(yīng)用程序完整代碼

    pywebview是輕量級Python庫,用于創(chuàng)建跨平臺桌面應(yīng)用,結(jié)合HTML/CSS/JS界面與Python交互,支持Windows/macOS/Linux,資源占用低,可與Flask、Waitress集成,便于開發(fā)、部署,本文給大家介紹python的pywebview庫結(jié)合Flask和waitress開發(fā)桌面應(yīng)用程序簡介,感興趣的朋友一起看看吧
    2025-07-07
  • 詳解Python with/as使用說明

    詳解Python with/as使用說明

    這篇文章主要介紹了Python with/as使用說明,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • 如何使用Python修改matplotlib.pyplot.colorbar的位置以對齊主圖

    如何使用Python修改matplotlib.pyplot.colorbar的位置以對齊主圖

    使用matplotlib.colors模塊可以完成大多數(shù)常見的任務(wù),下面這篇文章主要給大家介紹了關(guān)于如何使用Python修改matplotlib.pyplot.colorbar的位置以對齊主圖的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • python 實(shí)現(xiàn)tar文件壓縮解壓的實(shí)例詳解

    python 實(shí)現(xiàn)tar文件壓縮解壓的實(shí)例詳解

    這篇文章主要介紹了python 實(shí)現(xiàn)tar文件壓縮解壓的實(shí)例詳解的相關(guān)資料,這里提供實(shí)現(xiàn)方法,幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • Python中調(diào)用和運(yùn)行其他.py文件的多種實(shí)現(xiàn)方法

    Python中調(diào)用和運(yùn)行其他.py文件的多種實(shí)現(xiàn)方法

    本文介紹了在Python中調(diào)用和運(yùn)行其他.py文件的四種方法:subprocess模塊、exec函數(shù)、import語句和os.system函數(shù),每種方法都有其適用場景和優(yōu)缺點(diǎn)
    2025-02-02
  • Python列表嵌套常見坑點(diǎn)及解決方案

    Python列表嵌套常見坑點(diǎn)及解決方案

    這篇文章主要介紹了Python列表嵌套常見坑點(diǎn)及解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 分享Pycharm中一些不為人知的技巧

    分享Pycharm中一些不為人知的技巧

    工欲善其事必先利其器,Pycharm 是最受歡迎的Python開發(fā)工具,它提供的功能非常強(qiáng)大,是構(gòu)建大型項(xiàng)目的理想工具之一,如果能挖掘出里面實(shí)用技巧,能帶來事半功倍的效果
    2018-04-04
  • python使用梯度下降算法實(shí)現(xiàn)一個多線性回歸

    python使用梯度下降算法實(shí)現(xiàn)一個多線性回歸

    這篇文章主要為大家詳細(xì)介紹了python使用梯度下降算法實(shí)現(xiàn)一個多線性回歸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 解決tensorflow打印tensor有省略號的問題

    解決tensorflow打印tensor有省略號的問題

    今天小編就為大家分享一篇解決tensorflow打印tensor有省略號的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02

最新評論

张家港市| 连平县| 琼中| 宁南县| 乌兰察布市| 沁阳市| 会泽县| 河西区| 安平县| 锡林郭勒盟| 濉溪县| 繁峙县| 镇赉县| 华亭县| 惠州市| 三河市| 瑞丽市| 金乡县| 乐山市| 玉环县| 从江县| 信阳市| 桃园县| 漳州市| 行唐县| 平江县| 黄骅市| 东台市| 昭通市| 迁西县| 平湖市| 米易县| 金平| 博爱县| 梁平县| 昔阳县| 宁都县| 英山县| 新龙县| 苗栗市| 陇西县|