<?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>「add_argument」タグの記事一覧Python Tech</title>
	<atom:link href="https://tech.nkhn37.net/tag/add_argument/feed/" rel="self" type="application/rss+xml" />
	<link>https://tech.nkhn37.net</link>
	<description>Python学習サイト</description>
	<lastBuildDate>Sun, 11 Jan 2026 20:52:59 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://tech.nkhn37.net/wp-content/uploads/2021/01/cropped-lion-normal-clear-1-32x32.png</url>
	<title>「add_argument」タグの記事一覧Python Tech</title>
	<link>https://tech.nkhn37.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Python】argparseを用いたコマンドライン引数の取得方法</title>
		<link>https://tech.nkhn37.net/python-argparse-commandline-args/</link>
					<comments>https://tech.nkhn37.net/python-argparse-commandline-args/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Fri, 11 Feb 2022 00:10:00 +0000</pubDate>
				<category><![CDATA[argparse]]></category>
		<category><![CDATA[add_argument]]></category>
		<category><![CDATA[ArgumentParser]]></category>
		<category><![CDATA[parse_args]]></category>
		<category><![CDATA[コマンドライン引数]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=2668</guid>

					<description><![CDATA[Pythonでコマンドライン引数をargparseモジュールを取得して処理する方法について解説します。 コマンドライン引数 コマンドライン引数とは、Pythonのプログラム実行時にコマンドラインで実行する際に指定する引数 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonでコマンドライン引数を<span class="marker"><strong>argparse</strong></span>モジュールを取得して処理する方法について解説します。</p>



<h2 class="wp-block-heading jinr-heading d--bold" id="コマンドライン引数">コマンドライン引数</h2>



<p class="wp-block-paragraph"><span class="marker"><strong>コマンドライン引数</strong></span>とは、Pythonのプログラム実行時にコマンドラインで実行する際に指定する引数の事です。コマンドライン引数を指定することで、実行条件を変えるなどができ、プログラムの挙動を変更することができるようになります。</p>



<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="">> python test.py 引数1 引数2</pre>



<p class="wp-block-paragraph">例えば、上記の例では「引数1」や「引数2」がコマンドライン引数です。上記は2つだけの例ですが、定義すれば任意の数の引数を使うことができます。</p>



<p class="wp-block-paragraph">Pythonでシンプルにコマンドライン引数を使いたい場合はsysモジュールを使ったプログラムにするのがお手軽です。小さなスクリプトであればsysを用いた方法で十分ですが、実際に規模の大きい又は複雑なプログラムの開発をしていると、例えばですが以下のようなことがしたくなってきます。</p>



<section class="wp-block-jinr-blocks-simplebox b--jinr-block-container"><div class="b--jinr-block b--jinr-box d--simple-box1  "><div class="c--simple-box-inner">
<ul class="wp-block-list jinr-list">
<li>コマンドライン引数に関するヘルプを簡単に出力したい</li>



<li>値を受け取るだけでなく「-f filename」「&#8211;file filename」のようにオプション引数として分かりやすい引数指定がしたい</li>



<li>「-x」のように指定するだけで、機能の実行可否のフラグが設定されるようにしたい</li>
</ul>
</div></div></section>



<p class="wp-block-paragraph">上記のような少し高度なコマンドライン引数処理をする場合には<span class="marker"><strong>argparse</strong></span>モジュールが便利です。以降ではargparseモジュールの基本的な使い方を例を用いながら紹介していきたいと思います。</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">sys モジュールを用いた方法は「<a href="https://tech.nkhn37.net/python-sys-commandline-args/" target="_blank" rel="noreferrer noopener">sysを用いたコマンドライン引数の取得方法</a>」を参考にしてください。</p>
</div>
		</div></section>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox5 ">
			<i class="jif jin-ifont-v2speaker" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph">以前は、<strong>optparse</strong> というモジュールが使われていましたが、Python 3.2 から非推奨になりました。optparse は廃止予定でありこれ以上の開発は行われませんので、新規開発などでは argparse を使用してください。</p>
</div>
		</div></section>



<h2 class="wp-block-heading jinr-heading d--bold" id="argparseを用いたコマンドライン引数の取得方法">argparseを用いたコマンドライン引数の取得方法</h2>



<p class="wp-block-paragraph"><span class="marker"><strong>argparse</strong></span>モジュールを用いたコマンドライン引数の取得方法について、以下のサンプルプログラムを用いて説明します。以下例をPythonスクリプトのひな型としても活用いただけるかなと思います。</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="">from argparse import ArgumentParser


def main():
    # ===== ArgumentParserの準備
    # パーサーの準備
    parser = ArgumentParser(description='スクリプトの説明')
    # 位置引数の設定
    parser.add_argument('arg1', metavar='Num1', type=int, help='Num1の説明')
    parser.add_argument('arg2', metavar='Str1', type=str, help='Str1の説明')
    # オプション引数の設定
    parser.add_argument('-x', action='store_true', dest='x_opt',
                        help='実行オプション')
    parser.add_argument('-f', '--file', action='store', dest='filename',
                        help='ファイル名オプション')
    # コマンドライン引数をパース(解析)する
    args = parser.parse_args()

    # ===== 取得した引数を取得する
    print(f'filename = {args.filename}')
    print(f'arg1 = {args.arg1}, {type(args.arg1)}')
    print(f'arg2 = {args.arg2}, {type(args.arg2)}')
    print(f'x_opt = {args.x_opt}')

    # =====
    # 実行スクリプト内容を記載
    print('===== スクリプト本体の実行 =====')
    print('..........')
    print('===== スクリプトの終了 =====')
    # =====


if __name__ == '__main__':
    main()</pre>



<p class="wp-block-paragraph">実行時にコマンドライン引数を指定するイメージは以下のようになります。</p>



<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="">【実行例】
> python argparse_basic.py -x -f filename 100 text   
filename = filename
arg1 = 100, &lt;class 'int'>
arg2 = text, &lt;class 'str'>
x_opt = True
===== スクリプト本体の実行 =====
..........
===== スクリプトの終了 =====</pre>



<p class="wp-block-paragraph">-fの部分は&#8211;fileとしても同様の結果になります。</p>



<p class="wp-block-paragraph">また、以下のようにコマンドラインからhelpを表示することができます。</p>



<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="">【実行例】
> python argparse_basic.py -h                        
usage: argparse_sample.py [-h] [-x] [-f FILENAME] Num1 Str1

スクリプトの説明

positional arguments:
  Num1                  Num1の説明
  Str1                  Str1の説明

optional arguments:
  -h, --help            show this help message and exit
  -x                    実行オプション
  -f FILENAME, --file FILENAME
                        ファイル名オプション</pre>



<p class="wp-block-paragraph">-hを&#8211;helpとしても同様の結果となります。具体的な引数の使用方法(usage)や引数にどういった種類があるのかが分かりやすく表示できていて分かりやすいです。</p>



<p class="wp-block-paragraph">以降でプログラムの細部処理内容を順に解説していきます。</p>



<h3 class="wp-block-heading jinr-heading d--bold" id="argumentparserの準備">ArgumentParserの準備</h3>



<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="">from argparse import ArgumentParser

# ===== ArgumentParserの準備
# パーサーの準備
parser = ArgumentParser(description='スクリプトの説明')</pre>



<p class="wp-block-paragraph">引数の解析にはargparserモジュールの<span class="marker"><strong>ArgumentParser</strong></span>クラスを使用します。上記のようにimportしたうえで、インスタンス化をして準備します。</p>



<p class="wp-block-paragraph">引数に指定しているdescriptionはプログラムの説明です。ヘルプ実行例で「スクリプトの説明」という文字列が実際に表示されているのが分かるかと思います。</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>ArgumentParser</code> では、他にも引数の指定ができます。公式ドキュメントの<a href="https://docs.python.org/ja/3/library/argparse.html#argumentparser-objects" target="_blank" rel="noreferrer noopener">こちら</a>を参考にしてください。</p>
</div>
		</div></section>



<h3 class="wp-block-heading jinr-heading d--bold" id="引数の設定">引数の設定</h3>



<p class="wp-block-paragraph">引数には<span class="marker"><strong>位置引数</strong></span>と<span class="marker"><strong>オプション引数</strong></span>があります。位置引数はプログラム名の後に順に指定される位置が意味を持つ引数です。オプション引数は「-f」「&#8211;file」等の後に引数を指定する方法で任意の位置で指定できます。</p>



<p class="wp-block-paragraph">いずれの引数でも<span class="marker"><strong>add_argument</strong></span>メソッドを使用します。それぞれの指定の違いについて以降で説明します。</p>



<h4 class="wp-block-heading jinr-heading d--bold" id="位置引数の設定">位置引数の設定</h4>



<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=""># 位置引数の設定
parser.add_argument('arg1', metavar='Num1', type=int, help='Num1の説明')
parser.add_argument('arg2', metavar='Str1', type=str, help='Str1の説明')</pre>



<p class="wp-block-paragraph">位置引数を指定するためには上記のように指定します。それぞれの項目を簡単に説明します。</p>



<ul class="wp-block-list jinr-list">
<li>&#8216;args1&#8217;や&#8217;args2&#8217;は、プログラムで後ほど使用する変数名です。</li>



<li>metavarは、ヘルプでの表示名です。</li>



<li>typeは、入力の型になります。例えば、ここでintと指定しているのに文字列をコマンドラインで指定してしまうとエラーとなります。</li>



<li>helpは、ヘルプでの説明として表示される文字列です。</li>
</ul>



<h4 class="wp-block-heading jinr-heading d--bold" id="オプション引数の指定">オプション引数の指定</h4>



<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=""># オプション引数の設定
parser.add_argument('-x', action='store_true', dest='x_opt',
                    help='実行オプション')
parser.add_argument('-f', '--file', action='store', dest='filename',
                    help='ファイル名オプション')</pre>



<p class="wp-block-paragraph">オプション引数を指定するためには上記のように指定します。それぞれの項目を簡単に説明します。</p>



<ul class="wp-block-list jinr-list">
<li>&#8216;-x&#8217;、&#8217;-f&#8217;、&#8217;&#8211;file&#8217;はオプション名として指定する文字列を指定します。</li>



<li>actionは、どういった処置を行うかを指定します。actionは色々な種類がありますので、詳細は<a href="https://docs.python.org/ja/3/library/argparse.html#action" target="_blank" rel="noreferrer noopener">こちら</a>を参照してみてください。</li>



<li>destは、プログラムで後ほど使用する変数名です。</li>



<li>helpは、ヘルプでの説明として表示される文字列です。</li>
</ul>



<p class="wp-block-paragraph">よく使うactionは「&#8217;store&#8217;で変数を格納する」「&#8217;store_true&#8217;でTrueを設定する」「&#8217;store_false&#8217;でFalseを設定する」といったものかなと思います。</p>



<p class="wp-block-paragraph">例えば今回の例では、-xが指定されるとx_optにTrueが設定されますので、例えばXX処理の実行要否を決めるといったことができます。&#8217;store_false&#8217;は今回の例では出てきていませんが、指定されると逆にFalseが設定されます。</p>



<h3 class="wp-block-heading jinr-heading d--bold" id="コマンドライン引数のパース-解析">コマンドライン引数のパース（解析）</h3>



<p class="wp-block-paragraph">上記でコマンドライン引数の設定準備はほとんど完了です。後は以下のようにparse_argsメソッドでコマンドライン引数を解析した結果を取得することができます。</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=""># コマンドライン引数をパース(解析)する
args = parser.parse_args()</pre>



<h3 class="wp-block-heading jinr-heading d--bold" id="取得したコマンドライン引数の使用">取得したコマンドライン引数の使用</h3>



<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=""># ===== 取得した引数を取得する
print(f'filename = {args.filename}')
print(f'arg1 = {args.arg1}, {type(args.arg1)}')
print(f'arg2 = {args.arg2}, {type(args.arg2)}')
print(f'x_opt = {args.x_opt}')</pre>



<p class="wp-block-paragraph">parse_argsで解析が完了すると設定した変数名にて上記のようにアクセスして使用することができるようになります。これらの引数を使って、以降のプログラムの入力にしたり、条件分岐で使用したりすることが可能です。</p>



<p class="wp-block-paragraph">以上がargparseの基本的な使い方になります。</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>argparse</code> の公式ドキュメントは<a href="https://docs.python.org/ja/3/library/argparse.html" target="_blank" rel="noreferrer noopener">こちら</a>を参照してください。</p>
</div>
		</div></section>



<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-libraries/argparse" 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-argparse-commandline-args/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-06-14 04:35:11 by W3 Total Cache
-->