<?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>「joinpath」タグの記事一覧Python Tech</title>
	<atom:link href="https://tech.nkhn37.net/tag/joinpath/feed/" rel="self" type="application/rss+xml" />
	<link>https://tech.nkhn37.net</link>
	<description>Python学習サイト</description>
	<lastBuildDate>Sat, 22 Nov 2025 03:45:40 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://tech.nkhn37.net/wp-content/uploads/2021/01/cropped-lion-normal-clear-1-32x32.png</url>
	<title>「joinpath」タグの記事一覧Python Tech</title>
	<link>https://tech.nkhn37.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Python】ファイルパスを組み立てる方法</title>
		<link>https://tech.nkhn37.net/python-filepath-join/</link>
					<comments>https://tech.nkhn37.net/python-filepath-join/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Fri, 30 Apr 2021 08:00:00 +0000</pubDate>
				<category><![CDATA[文字列]]></category>
		<category><![CDATA[joinpath]]></category>
		<category><![CDATA[os.path.join]]></category>
		<category><![CDATA[pathlib]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=8097</guid>

					<description><![CDATA[Python でファイルパスを組み立てる方法について解説します。 ファイルパスを組み立てる方法 プログラミングでは、文字列を使ってファイルパスを組み立てる場面によく直面します。この場合は、Windows や Linux  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Python で<span class="jinr-d--text-color d--marker1 d--bold">ファイルパスを組み立てる方法</span>について解説します。</p>



<h2 class="wp-block-heading jinr-heading d--bold" id="複数のパス文字列を結合する場合-os-path-join">ファイルパスを組み立てる方法</h2>



<p class="wp-block-paragraph">プログラミングでは、文字列を使ってファイルパスを組み立てる場面によく直面します。この場合は、Windows や Linux といった環境に応じた区切り文字を使うなど、単純な文字列結合だと少し考慮することが出てきます。</p>



<p class="wp-block-paragraph">Python では、ファイルパスの組み立て方法として以下のような方法があります。</p>



<ol class="wp-block-list jinr-list">
<li><span class="jinr-d--text-color d--marker1 d--bold"><code>os.path.join</code></span> を使用する方法</li>



<li><span class="jinr-d--text-color d--marker1 d--bold"><code>pathlib</code></span> モジュールの <span class="jinr-d--text-color d--marker1 d--bold"><code>joinpath</code></span> メソッドを使用する方法</li>
</ol>



<p class="wp-block-paragraph">この記事では、Python でファイルパスを組み立てる方法を例を使って紹介します。</p>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox6 ">
			<i class="jif jin-ifont-v2books" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph">一般的な文字列の連結・結合方法は「<a href="https://tech.nkhn37.net/python-str-join/" target="_blank" rel="noreferrer noopener">文字列を連結・結合する方法</a>」を参考にしてください。</p>
</div>
		</div></section>



<h3 class="wp-block-heading jinr-heading d--bold"><code>os.path.join</code> を使用する方法</h3>



<p class="wp-block-paragraph"><span class="jinr-d--text-color d--marker1 d--bold"><code>os.path.join</code></span> を使用する方法について紹介します。<code>os.path.join</code> は、環境に応じたパス区切り文字を補うため、環境に合わせた区切り文字判定の考慮が不要です。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import os

target_path = r"D:\test"

# 対象フォルダ内のファイル名を順に取得し、パスを作成
for f in os.listdir(target_path):
    # os.path.joinでフォルダパスとファイル名を結合
    tmp_path = os.path.join(target_path, f)
    print(tmp_path)

print("=====")
# 新しいファイル用のパスを作成
new_path = os.path.join(target_path, "tmp", "sample4.txt")
print(new_path)</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">D:\test\sample1.txt
D:\test\sample2.txt
D:\test\sample3.txt
=====
D:\test\tmp\sample4.txt</pre>



<p class="wp-block-paragraph">例では、あらかじめ <code>D</code> ドライブに <code>test</code> というフォルダを作成し、<code>sample1.txt</code>、<code>sample2.txt</code>、<code>sample3.txt</code> というファイルを用意してあります。任意のフォルダにファイルを用意して試してみてください。</p>



<p class="wp-block-paragraph"><code>os.listdir</code> で対象フォルダのファイル名をリストアップできるため、取得できたファイル名を <code>for</code> で繰り返しながら <code>os.path.join</code> でパスを作成しています。</p>



<p class="wp-block-paragraph">また、新しい <code>sample4.txt</code> 用のパスを作成したい場合にも簡単に作成できます。<code>os.path.join</code> の引数には連結対象の複数の文字列を指定できるため、パス上のフォルダ名を複数指定してパスを作ることができます。</p>



<h3 class="wp-block-heading jinr-heading d--bold"><code>pathlib</code> モジュールの <code>joinpath</code> メソッドを使用する方法</h3>



<p class="wp-block-paragraph"><code>os.path.join</code> を使うことで簡単にファイルパスを作ることができましたが、より高水準なパスオブジェクトを提供してくれる <span class="jinr-d--text-color d--marker1 d--bold"><code>pathlib</code></span> モジュールというものがあります。</p>



<p class="wp-block-paragraph"><code>pathlib</code> モジュールは、ファイルシステムのパスを表すクラスを提供しており、各種便利なメソッドを使用できます。上記で紹介した <code>os.path.join</code> と同じ内容を <code>pathlib</code> で実装する例を見てみましょう。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import pathlib

target_path = r"D:\test"

# Pathオブジェクトを作成
path = pathlib.Path(r"D:\test")

# 対象フォルダ内のファイルを取得
file_path = [x for x in path.iterdir() if x.is_file()]
print(file_path)
# 色々なメソッドを使用することが可能
print(file_path[0].is_file())
print(file_path[0].is_dir())
print(file_path[0].drive)
print(file_path[0].name)

print("=====")
# 新しいファイル用のパスを作成
new_path = path.joinpath("tmp", "sample4.txt")
print(new_path)
print(type(new_path))</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
[WindowsPath('D:/test/sample1.txt'), WindowsPath('D:/test/sample2.txt'), WindowsPath('D:/test/sample3.txt')]
True
False
D:
sample1.txt
=====
D:\test\tmp\sample4.txt
&lt;class 'pathlib.WindowsPath'></pre>



<p class="wp-block-paragraph">以降でポイントを分けて説明していきます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import pathlib

target_path = r"D:\test"

# Pathオブジェクトを作成
path = pathlib.Path(r"D:\test")</pre>



<p class="wp-block-paragraph"><code>pathlib</code> モジュールをインポートし、<code>pathlib.Path</code> に対象パスを渡すことでパス用のオブジェクトを作成します。</p>



<p class="wp-block-paragraph"><code>Path</code> オブジェクトは <code>iter_dir()</code> を用いることでファイルパスを順に取得できます。リスト内包表記を使って、各ファイルパスを取得していますが「<code>if x.is_file()</code>」とすることでファイルの場合のみ取得しています。例えば、この部分を <code>x.is_dir()</code> とすればディレクトリ（フォルダ）のみを取得することも可能です。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 対象フォルダ内のファイルを取得
file_path = [x for x in path.iterdir() if x.is_file()]
print(file_path)
# 色々なメソッドを使用することが可能
print(file_path[0].is_file())
print(file_path[0].is_dir())
print(file_path[0].drive)
print(file_path[0].name)</pre>



<p class="wp-block-paragraph"><code>os.path.join</code> で扱うパスは文字列ですが <code>pathlib</code> で扱うのはパス用オブジェクトのため、<code>is_file()</code> や <code>is_dir()</code> でファイルかフォルダかを判定したり、<code>drive</code>、<code>name</code> といったプロパティで各種情報にアクセスしたりできるため非常に便利です。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 新しいファイル用のパスを作成
new_path = path.joinpath('tmp', 'sample4.txt')
print(new_path)
print(type(new_path))</pre>



<p class="wp-block-paragraph">新しいパスを作成したい場合には、<span class="jinr-d--text-color d--marker1 d--bold"><code>joinpath</code></span> メソッドを使用できます。<code>os.path.join</code> と同様に複数の文字列を指定できるため、パス上のフォルダ名等を複数指定してパスを作ることができます。</p>



<p class="wp-block-paragraph">お手軽にパス文字列を作成するだけであれば、<code>os.path.join</code> で十分ですが、プログラム中で各種パスの情報を参照しながら処理をする場合は、各種便利なメソッドが使用できるため、<code>pathlib</code> の利用を検討してみてください。</p>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox6 ">
			<i class="jif jin-ifont-v2books" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph"><code>pathlib</code> の公式ドキュメントは<a href="https://docs.python.org/ja/3/library/pathlib.html#module-pathlib" target="_blank" rel="noreferrer noopener">こちら</a>を参照してください。</p>
</div>
		</div></section>



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



<p class="wp-block-paragraph">Python で<span class="jinr-d--text-color d--marker1 d--bold">ファイルパスを組み立てる方法</span>について解説しました。</p>



<p class="wp-block-paragraph">Python では、ファイルパスの組み立て方法として以下のような方法があります。それぞれの方法について例を使って紹介しました。</p>



<ol class="wp-block-list jinr-list">
<li><span class="jinr-d--text-color d--marker1 d--bold"><code>os.path.join</code></span> を使用する方法</li>



<li><span class="jinr-d--text-color d--marker1 d--bold"><code>pathlib</code></span> モジュールの <span class="jinr-d--text-color d--marker1 d--bold"><code>joinpath</code></span> メソッドを使用する方法</li>
</ol>



<p class="wp-block-paragraph">お手軽にパス文字列を作成するだけであれば、<code>os.path.join</code> で十分ですが、プログラム中で各種パスの情報を参照しながら処理をするような場合は、<code>pathlib</code> の利用を検討してみてください。</p>



<section class="wp-block-jinr-blocks-simplebox b--jinr-block-container"><div class="b--jinr-block b--jinr-box d--heading-box8  "><div class="a--simple-box-title d--bold">ソースコード</div><div class="c--simple-box-inner">
<p class="wp-block-paragraph">上記で紹介しているソースコードについては <a href="https://github.com/nkhn37/python-tech-sample-source/tree/main/python-basic/string/filepath" target="_blank" rel="noreferrer noopener">GitHub</a> にて公開しています。参考にしていただければと思います。</p>
</div></div></section>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/python-filepath-join/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Disk: Enhanced  を使用したページ キャッシュ

Served from: tech.nkhn37.net @ 2026-09-16 20:45:36 by W3 Total Cache
-->