<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>自動化 &#8211; dr-harv-blog</title>
	<atom:link href="https://www.dr-harv.com/tag/%e8%87%aa%e5%8b%95%e5%8c%96/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.dr-harv.com</link>
	<description></description>
	<lastBuildDate>Tue, 22 Jul 2025 03:39:41 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://www.dr-harv.com/wp-content/uploads/2022/11/cropped-shutterstock_1897171960-32x32.jpg</url>
	<title>自動化 &#8211; dr-harv-blog</title>
	<link>https://www.dr-harv.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Kindleのスクリーンショットを、Pyautoguiで自動化する、技術的考察</title>
		<link>https://www.dr-harv.com/archive-post10532/</link>
		
		<dc:creator><![CDATA[drｰharv]]></dc:creator>
		<pubDate>Wed, 31 Jul 2024 05:29:13 +0000</pubDate>
				<category><![CDATA[医学研究とデータサイエンス]]></category>
		<category><![CDATA[Kindle]]></category>
		<category><![CDATA[Pyautogui]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[スクリーンショット]]></category>
		<category><![CDATA[医師]]></category>
		<category><![CDATA[業務効率化]]></category>
		<category><![CDATA[研究DX]]></category>
		<category><![CDATA[研究者]]></category>
		<category><![CDATA[自動化]]></category>
		<category><![CDATA[論文]]></category>
		<guid isPermaLink="false">https://www.dr-harv.com/?p=12040</guid>

					<description><![CDATA[<p><img src="https://www.dr-harv.com/wp-content/uploads/2022/05/kindle-g1c916b019_640.jpg" class="webfeedsFeaturedVisual" /></p>Kindleのスクショは個人利用でかつ非営利の場合問題ありません この記事では、Pyautoguiを使ってKindleのスクリーンショットを自動化する方法を紹介します。これで手間を省き、効率的にスクリーンショットを撮るこ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://www.dr-harv.com/wp-content/uploads/2022/05/kindle-g1c916b019_640.jpg" class="webfeedsFeaturedVisual" /></p>
<p>Kindleのスクショは個人利用でかつ非営利の場合問題ありません</p>



<p>この記事では、Pyautoguiを使ってKindleのスクリーンショットを自動化する方法を紹介します。これで手間を省き、効率的にスクリーンショットを撮ることができます。</p>



<p><strong>【最重要：警告】</strong> <strong>この記事で紹介する技術は、著作権法に抵触するリスクを伴う、極めてデリケートなものです。その法的・倫理的なリスクを完全に理解し、そして、全ての法的結果を、自己責任で引き受ける覚悟のある、上級者の方のみ、お読みください。</strong></p>



<h2 class="wp-block-heading">スクリーンショットの自動化</h2>



<p>手動で一枚一枚スクリーンショットを撮るのは時間がかかり、非常に面倒です。この悩みを解決する方法があれば、良いと思ったことはあるかと思います。</p>



<p>なによりも、手動でのスクリーンショット撮影を続けると、貴重な時間が浪費されるだけでなく、誤って重要な部分を撮り忘れることもおこってしまいかねません。</p>



<h2 class="wp-block-heading">pyautoguiの利用</h2>



<p>そんな悩みを解決するのが、Pyautoguiを使った自動スクリーンショット撮影です。</p>



<p>pyautoguiは、PythonでGUIオートメーションライブラリです。</p>



<p>Pyautoguiを使えば、以下の操作が可能です：</p>



<ul class="wp-block-list is-style-good_list has-swl-pale-03-background-color has-background">
<li>画面全体や指定範囲のスクリーンショットを撮影</li>



<li>Kindleアプリを自動で操作してページ送り</li>



<li>画像を指定フォルダに自動保存 具体的なコードも提供されているため、初心者でも簡単に始められます。</li>
</ul>



<p>自動テスト、デスクトップの自動化タスクなどに使用することが出来ます。</p>



<p>実装は無料で利用できる<a href="https://code.visualstudio.com/download" data-type="link" data-id="https://code.visualstudio.com/download">Visual Studio Code</a>がオススメです</p>


<p><!-- START MoshimoAffiliateEasyLink --><br />
<script type="text/javascript">
(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;
b[a]=b[a]||function(){arguments.currentScript=c.currentScript
||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};
c.getElementById(a)||(d=c.createElement(f),d.src=g,
d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})
(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");
msmaflink({"n":"Visual Studio Code完全入門　Webクリエイター\u0026エンジニアの作業がはかどる新世代エディターの操り方","b":"","t":"","d":"https:\/\/m.media-amazon.com","c_p":"","p":["\/images\/I\/512efZlVCaL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/B09TDNXKL4","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/B09TDNXKL4","a_id":3139217,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":2,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/Visual%20Studio%20Code%E5%AE%8C%E5%85%A8%E5%85%A5%E9%96%80%E3%80%80Web%E3%82%AF%E3%83%AA%E3%82%A8%E3%82%A4%E3%82%BF%E3%83%BC%26%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%AE%E4%BD%9C%E6%A5%AD%E3%81%8C%E3%81%AF%E3%81%8B%E3%81%A9%E3%82%8B%E6%96%B0%E4%B8%96%E4%BB%A3%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%83%BC%E3%81%AE%E6%93%8D%E3%82%8A%E6%96%B9\/","a_id":3052701,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2},{"id":3,"u_tx":"Yahoo!ショッピングで見る","u_bc":"#66a7ff","u_url":"https:\/\/shopping.yahoo.co.jp\/search?first=1\u0026p=Visual%20Studio%20Code%E5%AE%8C%E5%85%A8%E5%85%A5%E9%96%80%E3%80%80Web%E3%82%AF%E3%83%AA%E3%82%A8%E3%82%A4%E3%82%BF%E3%83%BC%26%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%AE%E4%BD%9C%E6%A5%AD%E3%81%8C%E3%81%AF%E3%81%8B%E3%81%A9%E3%82%8B%E6%96%B0%E4%B8%96%E4%BB%A3%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%83%BC%E3%81%AE%E6%93%8D%E3%82%8A%E6%96%B9","a_id":3163784,"p_id":1225,"pl_id":27061,"pc_id":1925,"s_n":"yahoo","u_so":3}],"eid":"JqWNh","s":"s"});
</script></p>
<div id="msmaflink-JqWNh">リンク</div>
<p><!-- MoshimoAffiliateEasyLink END --></p>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>Python環境でPyautogui</strong>をインストールします</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>$ pip install pyautogui</code></pre></div>



<h2 class="wp-block-heading">スクリーンショットをとる</h2>



<p>基本的なデスクトップのスクリーンショットはこちら</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>import pyautogui
# 全画面のスクリーンショットを撮る場合
img1 = pyautogui.screenshot(&#39;my_screenshot_all.png&#39;)
# 範囲を指定する場合
img2 = pyautogui.screenshot(&#39;my_screenshot_region.png&#39;, region=(left,top,width,height))
</code></pre></div>



<p>これでデスクトップのスクリーンショットを保存することが出来ます</p>



<p>では、<span class="st-mymarker-s-b">続いてPyatutoguiを使ってKindleのスクショをとります</span></p>



<h2 class="wp-block-heading">pyatutoguiでKindleのスクショをとる</h2>



<p>コードが動作するためには以下の条件が必要です</p>



<div class="wp-block-group is-style-big_icon_good"><div class="wp-block-group__inner-container">
<ul class="wp-block-list">
<li><span class="st-mymarker-s-b">Kindleアプリケーションが起動している</span></li>



<li><span class="st-mymarker-s-b">スクリーンショットをとりたいライブラリが開いている</span></li>



<li><span class="st-mymarker-s-b">アプリを最前面に開いておく</span></li>
</ul>
</div></div>



<p><span class="st-mymarker-s-b"></span></p>



<p>最前面にアプリを開く必要があるのですが面倒なので</p>



<p><strong>スクリーンショットをとるアプリを指定するためにコードを改良</strong>します</p>



<p><strong>pygetwindow</strong>ライブラリを使用します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>pip install pyautogui pygetwindow</code></pre></div>



<p>次にコードを示します。コピペでOKですが、調整を要するところがあります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>import pyautogui
import pygetwindow as gw
import time
import os
import datetime

#########################
# 変数定義
#########################

page = 5
span = 1
h_foldername = &quot;output&quot;
h_filename = &quot;picture&quot;
window_title_contains = &quot;kindle&quot;  # kindleを含むウインドウを開く

#########################
# スクリーンショット取得処理
#########################

time.sleep(5)

desktop_path = os.path.join(os.path.join(os.environ[&#39;USERPROFILE&#39;]), &#39;Desktop&#39;)

folder_name = h_foldername + &quot;_&quot; + str(datetime.datetime.now().strftime(&quot;%Y%m%d%H%M%S&quot;))
os.mkdir(os.path.join(desktop_path, folder_name))

for p in range(page):
    out_filename = h_filename + &quot;_&quot; + str(p+1).zfill(4) + &#39;.png&#39;

    windows = gw.getWindowsWithTitle(window_title_contains)
    if windows:
        window = windows[0]
        window.activate()
        window.moveTo(0,0)
        time.sleep(1)
        s = pyautogui.screenshot(region=(window.left, window.top, window.width, window.height))
        s.save(os.path.join(desktop_path, folder_name, out_filename))
    else:
        print(f&quot;No window containing &#39;{window_title_contains}&#39; in the title was found.&quot;)
        break

    pyautogui.keyDown(&#39;right&#39;)
    time.sleep(span)
</code></pre></div>



<p>デスクトップに保存していますが、保存先のパスを変更できます</p>



<p>このコードは右で進むタイプの書籍でWorkします</p>



<h2 class="wp-block-heading">左で進む作品の対応</h2>



<p>漫画などの左で進む作品はこちらのコードがWorkします。このコードではキャプチャ範囲を指定しています。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>import pyautogui
import pygetwindow as gw
import time
import os
import datetime

#########################
# 変数定義
#########################

page = 5
span = 1
h_foldername = &quot;output&quot;
h_filename = &quot;picture&quot;
window_title_contains = &quot;kindle&quot;  # ウィンドウタイトルに含まれるべき文字列

#########################
# スクリーンショット取得処理
#########################

time.sleep(5)

desktop_path = os.path.join(os.path.join(os.environ[&#39;USERPROFILE&#39;]), &#39;Desktop&#39;)

folder_name = h_foldername + &quot;_&quot; + str(datetime.datetime.now().strftime(&quot;%Y%m%d%H%M%S&quot;))
os.mkdir(os.path.join(desktop_path, folder_name))

for p in range(page):
    out_filename = h_filename + &quot;_&quot; + str(p+1).zfill(4) + &#39;.png&#39;

    windows = gw.getWindowsWithTitle(window_title_contains)
    if windows:
        window = windows[0]
        window.activate()  # ウィンドウをアクティブにする
        time.sleep(1)  # アクティブ化後の安定化のために少し待つ
        # 左上の座標
        x1, y1 = 573, 236

        #右下の座標
        x2, y2 = 3383, 2173

        s = pyautogui.screenshot(region=(x1, y1, x2-x1, y2-y1))
        s.save(os.path.join(desktop_path, folder_name, out_filename))
        pyautogui.press(&#39;left&#39;)
        time.sleep(span)

    else:
        print(f&quot;No window containing &#39;{window_title_contains}&#39; in the title was found.&quot;)
        break
</code></pre></div>



<h2 class="wp-block-heading">スクリーンショットの範囲を指定する</h2>



<p>さて、これで写真がとれていることが確認されたら</p>



<p>トリミングも行いたいですよね。トリミングはディスプレイの解像度やウインドウの大きさで変わってしまうので、ウインドウを最大化した状態で環境に合わせて変更されることをオススメします。</p>



<p>画面には座標が設定されているので以下のコードを用いることで左上と右下の座標を得ることが出来ます。ここであわせた座標を上のコードに調整することで画面キャプチャの場所を合わせることが出来ます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>import pyautogui
import time

print(&quot;3秒後に座標を取得します...&quot;)
time.sleep(3)
position1 = pyautogui.position()
print(&quot;左上の座標：&quot;, position1)

print(&quot;次の座標を取得するまで3秒待ちます...&quot;)
time.sleep(3)
position2 = pyautogui.position()
print(&quot;右下の座標：&quot;, position2)
</code></pre></div>


<p><!-- START MoshimoAffiliateEasyLink --><script type="text/javascript">(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;b[a]=b[a]||function(){arguments.currentScript=c.currentScript||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};c.getElementById(a)||(d=c.createElement(f),d.src=g,d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");msmaflink({"n":"Python業務自動化マスタリングハンドブック (Python定番セレクション)","b":"秀和システム","t":"","d":"https:\/\/m.media-amazon.com","c_p":"\/images\/I","p":["\/51EuQbK88qL._SL500_.jpg","\/41Ue8Cl3bZL._SL500_.jpg","\/41l7eS0CyeL._SL500_.jpg","\/41xdK-e9-NL._SL500_.jpg","\/41BXplOobpL._SL500_.jpg","\/41dvcHSUzXL._SL500_.jpg","\/41u6cbj-efL._SL500_.jpg","\/41odGpHEjIL._SL500_.jpg","\/41TCY5SL4GL._SL500_.jpg","\/41aYlEuAXGL._SL500_.jpg","\/41CDqu4Bl3L._SL500_.jpg","\/41gRBET64NL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/4798068063","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/4798068063","a_id":3139217,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":2,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/Python%E6%A5%AD%E5%8B%99%E8%87%AA%E5%8B%95%E5%8C%96%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF%20(Python%E5%AE%9A%E7%95%AA%E3%82%BB%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3)\/","a_id":3052701,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2},{"id":3,"u_tx":"Yahoo!ショッピングで見る","u_bc":"#66a7ff","u_url":"https:\/\/shopping.yahoo.co.jp\/search?first=1\u0026p=Python%E6%A5%AD%E5%8B%99%E8%87%AA%E5%8B%95%E5%8C%96%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF%20(Python%E5%AE%9A%E7%95%AA%E3%82%BB%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3)","a_id":3163784,"p_id":1225,"pl_id":27061,"pc_id":1925,"s_n":"yahoo","u_so":3}],"eid":"toup2","s":"l"});</script></p>
<div id="msmaflink-toup2">リンク</div>
<p><!-- MoshimoAffiliateEasyLink END --></p>



<h2 class="wp-block-heading">関連記事</h2>



<p><a href="https://www.dr-harv.com/post10524/" data-type="link" data-id="https://www.dr-harv.com/post10524/"><strong>Kindleのスクショって違法なのか？【法的リスクと利用ガイド】</strong></a></p>



<p><a href="https://www.dr-harv.com/post10599/" data-type="link" data-id="https://www.dr-harv.com/post10599/"><strong>PyautoguiでClickしてPCの画面操作を行う</strong></a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【医師・研究者のPython】PDF論文の「表」を、コピペせずに一瞬でExcel化するTabula活用術</title>
		<link>https://www.dr-harv.com/post10582/</link>
		
		<dc:creator><![CDATA[drｰharv]]></dc:creator>
		<pubDate>Wed, 10 Apr 2024 08:00:27 +0000</pubDate>
				<category><![CDATA[医学研究とデータサイエンス]]></category>
		<category><![CDATA[CSV]]></category>
		<category><![CDATA[CSV変換]]></category>
		<category><![CDATA[pandas]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[PDF抽出]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Tabula]]></category>
		<category><![CDATA[データ抽出]]></category>
		<category><![CDATA[メタアナリシス]]></category>
		<category><![CDATA[医師]]></category>
		<category><![CDATA[研究]]></category>
		<category><![CDATA[研究者]]></category>
		<category><![CDATA[自動化]]></category>
		<category><![CDATA[論文]]></category>
		<guid isPermaLink="false">https://www.dr-harv.com/?p=10582</guid>

					<description><![CDATA[<p><img src="https://www.dr-harv.com/wp-content/uploads/2024/04/PythonでPDFから表データを抽出する方法-1024x538.png" class="webfeedsFeaturedVisual" /></p>メタアナリシスのため、何十もの先行研究論文の「結果の表」を、ひたすら手作業でExcelに転記する…。 この、時間と集中力を浪費する、非創造的な作業にうんざりしていませんか？ 実は、このプロセスはPythonを使えば、数分 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://www.dr-harv.com/wp-content/uploads/2024/04/PythonでPDFから表データを抽出する方法-1024x538.png" class="webfeedsFeaturedVisual" /></p>
<p>メタアナリシスのため、何十もの先行研究論文の「結果の表」を、ひたすら手作業でExcelに転記する…。</p>



<p>この、時間と集中力を浪費する、非創造的な作業にうんざりしていませんか？ 実は、このプロセスはPythonを使えば、数分で自動化できます。</p>



<p>この記事では、PDFという「牢獄」に閉じ込められた貴重な表データを「解放」し、あなたの研究を加速させるための、具体的なプロトコルを解説します。</p>



<h2 class="wp-block-heading">なぜ、この「データ抽出スキル」が研究の質を左右するのか？</h2>



<p>この一見地味な技術が、我々の研究活動に大きなアドバンテージをもたらす理由は3つあります。</p>



<p><strong>① 圧倒的な時間短縮と、人的ミスの排除:</strong> 手作業による転記ミスは、研究の信頼性を損なう最大のリスクの一つです。自動化は、このリスクを根本から断ち切り、何時間もかかっていた作業を、文字通り数秒で終わらせます。</p>



<p><strong>② メタアナリシス・系統的レビューの実現可能性UP:</strong> データ収集のハードルが劇的に下がることで、これまで時間的な制約で諦めていたような、より多くの論文を対象とした、大規模で質の高いレビュー研究も可能になります。</p>



<p><strong>③ データに基づく、客観的な診療・研究へ:</strong> 容易に扱えるデータが増えることは、より客観的な根拠に基づいた臨床判断や、新たな研究仮説の発見に繋がります。</p>



<ul class="wp-block-list">
<li>PDF内の表を<strong>自動で読み込み→表形式のデータ抽出</strong></li>



<li>データをそのまま<strong>CSVやExcelとして出力</strong></li>



<li>特定ページだけ、複数テーブル、複雑な表構造にも対応！</li>
</ul>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f6e0.png" alt="🛠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 事前準備：環境構築</h2>



<h3 class="wp-block-heading">① ライブラリのインストール</h3>



<p>bash</p>



<p><code>pip install tabula-py pandas</code></p>



<p>「自分のPCに色々インストールするのは面倒だ…」という先生には、<strong>Google Colaboratory</strong>の利用を強くお勧めします。Webブラウザだけで、すでにPythonや各種ライブラリが準備された環境を、無料で利用できます。</p>


<div class="swell-block-postLink">			<a href="https://www.dr-harv.com/post7343/" class="c-blogLink -external" data-style="slim" target="_blank" rel="noopener noreferrer">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-externalLink __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M44 2H30c-1.1 0-2 .9-2 2s.9 2 2 2h9.2L24 21.2c-.8.8-.8 2 0 2.8s2 .8 2.8 0L42 8.8V18c0 1.1.9 2 2 2s2-.9 2-2V4c0-1.1-.9-2-2-2z" /><path d="M41 27c-1.1 0-2 .9-2 2v10c0 1.1-.9 2-2 2H9c-1.1 0-2-.9-2-2V11c0-1.1.9-2 2-2h10c1.1 0 2-.9 2-2s-.9-2-2-2H9c-3.3 0-6 2.7-6 6v28c0 3.3 2.7 6 6 6h28c3.3 0 6-2.7 6-6V29c0-1.1-.9-2-2-2z" /></svg>				</span>
				<span class="c-blogLink__text">【医師の研究DX】Google Colaboratoryとは？3分で、無料の「データサイエンス研究室」を手に入れる方法｜20&#8230;</span>
			</a>
		</div>


<h3 class="wp-block-heading">②Javaのインストール</h3>



<p><a href="https://www.java.com/en/download/manual.jsp">Java Downloads for All Operating Systems</a></p>



<p>OS毎（Windows,Mac, Linux）にダウンロード可能ですが、<strong>Windows環境ではWindows Offline(64bit)をダウンロードしてインストール</strong>します</p>



<p>インストールの確認</p>



<p>コマンドプロンプトやターミナルで以下のコマンドを実行します、インストールされていればバージョン情報が表示されます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>java -version</code></pre></div>



<h3 class="wp-block-heading">③ 環境変数PATHの設定（Windows）</h3>



<p>Javaを実行できるように実行可能ファイル(java.exe)が環境変数PATHに含まれるように設定します。いわゆる、PATHを通すということです。</p>



<p><strong>環境変数の設定方法</strong>:</p>



<ul class="wp-block-list">
<li><strong>Windows</strong>の場合、コントロールパネルの「システム」→「システムの詳細設定」→「環境変数」でPATHを編集できます。Javaがインストールされているディレクトリ（通常は「C:\Program Files\Java\jdk[バージョン]\bin」）をPATHに追加してください。</li>



<li><strong>macOS/Linux</strong>の場合、ターミナルで<code>.bashrc</code> や <code>.bash_profile</code> （または使用しているシェルに応じた設定ファイル）を編集し、<code>export PATH=$PATH:/path/to/java/bin</code> の形式でJavaのパスを追加します。</li>
</ul>



<p>コンピュータを再起動することで設定変更が反映されるようになります</p>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4e5.png" alt="📥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 実行コード：PDFから表を読み込んでCSVに保存</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import tabula
import pandas as pd

# PDFファイルのパス
file_path = &quot;example.pdf&quot;

# 表の読み込み（複数ページ、複数テーブル対応）
tables = tabula.read_pdf(file_path, pages=&quot;all&quot;, multiple_tables=True)

# CSVとして保存
for i, table in enumerate(tables):
    table.to_csv(f&quot;table_{i}.csv&quot;, index=False)
</code></pre></div>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f501.png" alt="🔁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ポイント：</h3>



<ul class="wp-block-list">
<li><code>multiple_tables=True</code>で1ページに複数の表があるPDFにも対応</li>



<li><code>pages='1,3'</code>などで指定ページのみ抽出も可能</li>
</ul>



<h3 class="wp-block-heading">JPypeのインストール</h3>



<p>上記でJavaのインストールと実行が可能ですが依存関係のエラーがでることがありサブプロセスを使用することがありました</p>



<p><code>Error importing jpype dependencies. Fallback to subprocess. No module named 'jpype</code></p>



<p>JavaプログラムをPythonから直接呼び出して実行することを可能とするライブラリJPypeを利用します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>pip install JPype1</code></pre></div>



<h2 class="wp-block-heading">PDFファイルからの表データの抽出</h2>



<p>以下のステップに従って、PDFから表データを抽出します：</p>



<h4 class="wp-block-heading">ステップ1: 必要なライブラリのインポート</h4>



<p>まず、必要なライブラリをインポートします。</p>



<p>python</p>



<p><code>import tabula import pandas as pd</code></p>



<h4 class="wp-block-heading">ステップ2: PDFファイルの読み込み</h4>



<p>Tabulaを使用してPDFファイルを読み込み、表データを取得します。例えば、<code>example.pdf</code>というファイルからデータを抽出する場合、以下のコードを使用します：</p>



<p>python</p>



<p><code>file_path = 'example.pdf' tables = tabula.read_pdf(file_path, pages='all', multiple_tables=True)</code></p>



<p>このコードは、PDFファイルのすべてのページから複数の表を読み込みます。</p>



<h4 class="wp-block-heading">ステップ3: データの操作と保存</h4>



<p>読み込んだ表データはPandasのDataFrame形式で返されます。これにより、データの操作や分析が容易になります。以下はデータをCSVファイルに保存する例です：</p>



<p>python</p>



<p><code>for i, table in enumerate(tables): table.to_csv(f'table_{i}.csv', index=False)</code></p>



<h2 class="wp-block-heading">エラーメッセージの対処法</h2>



<p><code>Error importing jpype dependencies. Fallback to subprocess.</code>というエラーが出る場合は、JPype1のインストールを確認し、再インストールを試みてください。</p>



<h2 class="wp-block-heading">PythonでPDFの表をcsvに</h2>



<p>PythonでPDF内の表(テーブル)をcsvやexcelに変換する手順は2ステップです。</p>



<p>ステップ1. PDFから表をpandasのDataFrameとして抜き出す<br>ステップ2. DataFrameをcsvやexcelとして書き込む</p>



<h2 class="wp-block-heading">まとめ</h2>



<p>PythonとTabula-py、Pandasを使えば、PDFから表データを効率的に抽出し、CSVやExcelファイルとして保存できます。このプロトコルをマスターすることで、先生は退屈なデータ入力作業から解放され、その時間を、医師・研究者として本来最も価値のある<strong>「データの解釈」「新しい仮説の構築」「論文の考察」</strong>といった、創造的な思考に集中させることができるようになります。</p>




]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
