目次
1. Python 操作 PDF 13 の大規模ライブラリの比較
2. pdfplumber モジュール
このクラスは pdfplumber の中核です。ほとんどの操作はこのクラスを中心に展開します。このクラスには次の属性があります:
三、实战操作
1. 提取单个PDF全部页数
2. 批量提取多个PDF文件
ホームページ バックエンド開発 Python チュートリアル Python サンプル pdfplumber PDF の読み込みと Excel への書き込みの詳細な説明

Python サンプル pdfplumber PDF の読み込みと Excel への書き込みの詳細な説明

Jun 20, 2022 am 11:58 AM
python

この記事では、python に関する関連知識を提供します。主に、pdfplumber モジュールのインストール、PDF の読み込みなど、pdfplumber による PDF の読み取りと Excel への書き込みに関する関連問題を紹介します。実践的な操作方法など、皆様のお役に立てれば幸いです。

Python サンプル pdfplumber PDF の読み込みと Excel への書き込みの詳細な説明

推奨学習: python ビデオ チュートリアル

1. Python 操作 PDF 13 の大規模ライブラリの比較

PDF ( Portable Document Format) は、オペレーティング システム間でのドキュメントの配布を容易にするポータブル ドキュメント形式です。 PDF ドキュメントは標準形式に従っているため、PDF ドキュメントを操作できるツールは数多くあり、Python も例外ではありません。

Python で動作する PDF モジュールの比較表は次のとおりです。

Python サンプル pdfplumber PDF の読み込みと Excel への書き込みの詳細な説明

この記事では主に pdfplumberPDF コンテンツの抽出に焦点を当てます。テキスト (位置、フォント、色など) や形状 (長方形、直線、曲線) として機能し、テーブルを解析する機能も備えています。

2. pdfplumber モジュール

他のいくつかの Python ライブラリは、ユーザーが PDF から情報を抽出するのに役立ちます。大まかに言うと、pdfplumber は、次の機能を組み合わせることで他の PDF 処理ライブラリと区別されます。

  • 各 PDF オブジェクトに関する詳細情報に簡単にアクセスできます
  • 高レベルのカスタマイズ可能な用途に使用されます。テキストとテーブルを抽出するメソッド
  • 緊密に統合されたビジュアル デバッグ
  • クロップ ボックスによるオブジェクトのフィルタリングなど、その他の便利なユーティリティ機能
#1. インストール

cmd コンソール入力:

pip install pdfplumber
ログイン後にコピー
ガイド パッケージ:

import pdfplumber
ログイン後にコピー
ケース PDF スクリーンショット (2 ページは切り取られていません):


Python サンプル pdfplumber PDF の読み込みと Excel への書き込みの詳細な説明

2. PDF の読み込み

PDF コードを読む:

pdfplumber.open("path/filename.pdf", パスワード = "test", laparams = { "line_overlap": 0.7 })

パラメータの解釈:

  • password : パスワードで保護された PDF をロードするには、パスワード キーワード パラメータを渡してください
  • laparams: 設定するにはレイアウト解析パラメータを pdfminer.six のレイアウト エンジンに渡し、laparams キーワード引数
ケース コード:

import pdfplumberwith pdfplumber.open("./1.pdf") as pdf:
    print(pdf)
    print(type(pdf))
ログイン後にコピー
出力結果:

<pdfplumber.pdf.pdf><class></class></pdfplumber.pdf.pdf>
ログイン後にコピー
3. pdfplumber .PDF クラス

pdfplumber.PDF クラスは単一の PDF を表し、2 つの主要なプロパティがあります:

PropertiesDescription##.metadata キー/値ペア #.pages##1. PDF ドキュメント情報 (.metadata
PDF からメタデータ 辞書を取得します情報。通常、「CreationDate」、「ModDate」、「Producer」などが含まれます。
pdfplumber.Page インスタンスを含むリストを返します。各インスタンスは PDF# の各ページの情報を表します。
) を読み取ります

:

import pdfplumberwith pdfplumber.open("./1.pdf") as pdf:
    print(pdf.metadata)
ログイン後にコピー
実行結果:
{'Author': 'wangwangyuqing', 'Comments': '', 'Company': '', 'CreationDate': "D:20220330113508+03'35'", 'Creator': 'WPS 文字', 'Keywords': '', 'ModDate': "D:20220330113508+03'35'", 'Producer': '', 'SourceModified': "D:20220330113508+03'35'", 'Subject': '', 'Title': '', 'Trapped': 'False'}
ログイン後にコピー

2. 総ページ数を出力

import pdfplumberwith pdfplumber.open("./1.pdf") as pdf:
    print(len(pdf.pages))
ログイン後にコピー

実行結果:

2
ログイン後にコピー
4. pdfplumber.Page class

pdfplumber.Page

このクラスは pdfplumber の中核です。ほとんどの操作はこのクラスを中心に展開します。このクラスには次の属性があります:

AttributesDescription.page_number.width.height.objects/.chars/.lines/.rects/.curves/.figures/.images#一般的に使用されるメソッドは次のとおりです:
最初のページは 1 から始まり、2 番目のページは 2 など、連続したページ番号。類推して。
ページの幅。
ページの高さ。
これらの各プロパティは、リストには、ページに埋め込まれた各オブジェクトの辞書が含まれています。詳細については、以下の「オブジェクト」を参照してください。

メソッド名

Description.extract_text() は、ページ内のテキストを抽出し、すべての文字を整理するために使用されます。ページ上のオブジェクトをその文字列に変換します #.extract_words()# すべての単語とその関連情報を返しますページのテーブルを抽出しますビジュアル デバッグに使用する場合は、PageImage クラスのインスタンスを返します。デフォルトでは、ページ オブジェクトは、再処理を避けるためにレイアウトとオブジェクト情報をキャッシュします。ただし、これらのキャッシュされたプロパティは、大きな PDF を解析するときに大量のメモリを必要とする可能性があります。このメソッドを使用すると、キャッシュをフラッシュしてメモリを解放できます。
.extract_tables()
.to_image()
.close()
<p><strong>1. 读取第一页宽度、高度等信息</strong></p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">import pdfplumberwith pdfplumber.open(&quot;./1.pdf&quot;) as pdf:     first_page = pdf.pages[0]  # pdfplumber.Page对象的第一页     # 查看页码     print('页码:', first_page.page_number)     # 查看页宽     print('页宽:', first_page.width)     # 查看页高     print('页高:', first_page.height)</pre><div class="contentsignin">ログイン後にコピー</div></div> <p>运行结果:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">页码: 1页宽: 595.3页高: 841.9</pre><div class="contentsignin">ログイン後にコピー</div></div> <p><strong>2. 读取文本第一页</strong></p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">import pdfplumberwith pdfplumber.open(&quot;./1.pdf&quot;) as pdf:     first_page = pdf.pages[0]  # pdfplumber.Page对象的第一页     text = first_page.extract_text()     print(text)</pre><div class="contentsignin">ログイン後にコピー</div></div> <p>运行结果:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">店铺名 价格 销量 地址 小罐茶旗舰店 449 474 安徽 零趣食品旗舰店 6.9 60000 福建 天猫超市 1304 3961 上海 天猫超市 139 25000 上海 天猫超市 930 692 上海 天猫超市 980 495 上海 天猫超市 139 100000 上海 三只松鼠旗舰店 288 25000 安徽 红小厨旗舰店 698 1767 北京 三只松鼠旗舰店 690 15000 安徽 一统领鲜旗舰店 1098 1580 上海 新大猩食品专营9.8 7000 湖南.......舰店 蟹纳旗舰店 498 1905 上海 三只松鼠坚果at茶 188 35000 安徽 嘉禹沪晓旗舰店 598 1517 上海</pre><div class="contentsignin">ログイン後にコピー</div></div> <p><strong>3. 读取表格第一页</strong></p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">import pdfplumberimport xlwtwith pdfplumber.open(&quot;1.pdf&quot;) as pdf:     page_one = pdf.pages[0]  # PDF第一页     table_1 = page_one.extract_table()  # 读取表格数据     # 1. 创建Excel表对象     workbook = xlwt.Workbook(encoding='utf8')     # 2. 新建sheet表     worksheet = workbook.add_sheet('Sheet1')     # 3. 自定义列名     col1 = table_1[0]     # print(col1)# ['店铺名', '价格', '销量', '地址']     # 4. 将列属性元组col写进sheet表单中第一行     for i in range(0, len(col1)):         worksheet.write(0, i, col1[i])     # 5. 将数据写进sheet表单中     for i in range(0, len(table_1[1:])):         data = table_1[1:][i]         for j in range(0, len(col1)):             worksheet.write(i + 1, j, data[j])     # 6. 保存文件分两种格式     workbook.save('test.xls')</pre><div class="contentsignin">ログイン後にコピー</div></div> <p>运行结果:<br><br><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/067/f7d6a4b0467bb6fa76b6dd3a885230ec-5.png" class="lazy" alt="Python サンプル pdfplumber PDF の読み込みと Excel への書き込みの詳細な説明"></p> <h2 id="三-实战操作">三、实战操作</h2> <h2 id="提取单个PDF全部页数">1. 提取单个PDF全部页数</h2> <p>测试代码:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">import pdfplumberimport xlwtwith pdfplumber.open(&quot;1.pdf&quot;) as pdf:     # 1. 把所有页的数据存在一个临时列表中     item = []     for page in pdf.pages:         text = page.extract_table()         for i in text:             item.append(i)     # 2. 创建Excel表对象     workbook = xlwt.Workbook(encoding='utf8')     # 3. 新建sheet表     worksheet = workbook.add_sheet('Sheet1')     # 4. 自定义列名     col1 = item[0]     # print(col1)# ['店铺名', '价格', '销量', '地址']     # 5. 将列属性元组col写进sheet表单中第一行     for i in range(0, len(col1)):         worksheet.write(0, i, col1[i])     # 6. 将数据写进sheet表单中     for i in range(0, len(item[1:])):         data = item[1:][i]         for j in range(0, len(col1)):             worksheet.write(i + 1, j, data[j])     # 7. 保存文件分两种格式     workbook.save('test.xls')</pre><div class="contentsignin">ログイン後にコピー</div></div> <p>运行结果(上面得没截全):<br><br><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/067/941942fb9bbaa5f3b17838085f419345-6.png" class="lazy" alt="Python サンプル pdfplumber PDF の読み込みと Excel への書き込みの詳細な説明"></p> <h2 id="批量提取多个PDF文件">2. 批量提取多个PDF文件</h2> <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/067/941942fb9bbaa5f3b17838085f419345-7.png" class="lazy" alt="Python サンプル pdfplumber PDF の読み込みと Excel への書き込みの詳細な説明"></p> <p>测试代码:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">import pdfplumber import xlwt import os # 一、获取文件下所有pdf文件路径 file_dir = r'E:\Python学习\pdf文件' file_list = [] for files in os.walk(file_dir):     # print(files)     # ('E:\\Python学习\\pdf文件', [],     #  ['1.pdf', '1的副本.pdf', '1的副本10.pdf', '1的副本11.pdf', '1的副本2.pdf', '1的副本3.pdf', '1的副本4.pdf', '1的副本5.pdf', '1的副本6.pdf',     #   '1的副本7.pdf', '1的副本8.pdf', '1的副本9.pdf'])     for file in files[2]:         # 以. 进行分割如果后缀为PDF或pdf就拼接地址存入file_list         if file.split(&quot;.&quot;)[1] == 'pdf' or file.split(&quot;.&quot;)[1] == 'PDF':             file_list.append(file_dir + '\\' + file) # 二、存入Excel # 1. 把所有PDF文件的所有页的数据存在一个临时列表中 item = [] for file_path in file_list:     with pdfplumber.open(file_path) as pdf:         for page in pdf.pages:             text = page.extract_table()             for i in text:                 item.append(i) # 2. 创建Excel表对象 workbook = xlwt.Workbook(encoding='utf8') # 3. 新建sheet表 worksheet = workbook.add_sheet('Sheet1') # 4. 自定义列名 col1 = item[0] # print(col1)# ['店铺名', '价格', '销量', '地址'] # 5. 将列属性元组col写进sheet表单中第一行 for i in range(0, len(col1)):     worksheet.write(0, i, col1[i]) # 6. 将数据写进sheet表单中 for i in range(0, len(item[1:])):     data = item[1:][i]     for j in range(0, len(col1)):         worksheet.write(i + 1, j, data[j]) # 7. 保存文件分两种格式 workbook.save('test.xls')</pre><div class="contentsignin">ログイン後にコピー</div></div> <p>运行结果(12个文件,一个文件50行总共600行):<br><br><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/067/941942fb9bbaa5f3b17838085f419345-8.png" class="lazy" alt="Python サンプル pdfplumber PDF の読み込みと Excel への書き込みの詳細な説明"></p> <p>推荐学习:<a href="https://www.php.cn/course/list/30.html" target="_blank">python视频教程</a></p>

以上がPython サンプル pdfplumber PDF の読み込みと Excel への書き込みの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

Debian Readdirが他のツールと統合する方法 Debian Readdirが他のツールと統合する方法 Apr 13, 2025 am 09:42 AM

DebianシステムのReadDir関数は、ディレクトリコンテンツの読み取りに使用されるシステムコールであり、Cプログラミングでよく使用されます。この記事では、ReadDirを他のツールと統合して機能を強化する方法について説明します。方法1:C言語プログラムを最初にパイプラインと組み合わせて、cプログラムを作成してreaddir関数を呼び出して結果をinclude#include#include inctargc、char*argv []){dir*dir; structdireant*entry; if(argc!= 2){(argc!= 2){

Pythonと時間:勉強時間を最大限に活用する Pythonと時間:勉強時間を最大限に活用する Apr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

debian opensslでHTTPSサーバーを構成する方法 debian opensslでHTTPSサーバーを構成する方法 Apr 13, 2025 am 11:03 AM

DebianシステムでHTTPSサーバーの構成には、必要なソフトウェアのインストール、SSL証明書の生成、SSL証明書を使用するWebサーバー(ApacheやNginxなど)の構成など、いくつかのステップが含まれます。 Apachewebサーバーを使用していると仮定して、基本的なガイドです。 1.最初に必要なソフトウェアをインストールし、システムが最新であることを確認し、ApacheとOpenSSL:sudoaptupdatesudoaptupgraysudoaptinstaをインストールしてください

DebianのGitlabのプラグイン開発ガイド DebianのGitlabのプラグイン開発ガイド Apr 13, 2025 am 08:24 AM

DebianでGitLabプラグインを開発するには、特定の手順と知識が必要です。このプロセスを始めるのに役立つ基本的なガイドを以下に示します。最初にgitlabをインストールすると、debianシステムにgitlabをインストールする必要があります。 GitLabの公式インストールマニュアルを参照できます。 API統合を実行する前に、APIアクセストークンを取得すると、GitLabのAPIアクセストークンを最初に取得する必要があります。 gitlabダッシュボードを開き、ユーザー設定で「アクセストーケン」オプションを見つけ、新しいアクセストークンを生成します。生成されます

Apacheとは何ですか Apacheとは何ですか Apr 13, 2025 pm 12:06 PM

アパッチはインターネットの背後にあるヒーローです。それはWebサーバーであるだけでなく、膨大なトラフィックをサポートし、動的なコンテンツを提供する強力なプラットフォームでもあります。モジュラー設計を通じて非常に高い柔軟性を提供し、必要に応じてさまざまな機能を拡張できるようにします。ただし、モジュール性は、慎重な管理を必要とする構成とパフォーマンスの課題も提示します。 Apacheは、高度にカスタマイズ可能で複雑なニーズを満たす必要があるサーバーシナリオに適しています。

Apacheはどの言語に書かれていますか? Apacheはどの言語に書かれていますか? Apr 13, 2025 pm 12:42 PM

ApacheはCで書かれています。言語は、速度、安定性、移植性、直接ハードウェアアクセスを提供し、Webサーバーの開発に最適です。

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

See all articles