ホームページ バックエンド開発 Python チュートリアル Python のコマンド ライン パラメーター解析ツールである docopt の使用方法の詳細な紹介

Python のコマンド ライン パラメーター解析ツールである docopt の使用方法の詳細な紹介

Mar 28, 2017 am 09:22 AM
docopt python

docopt は、コマンド ライン パラメーターを解析するために使用されるツールです。Python プログラムにパラメーターを追加する場合は、もう心配する必要はありません。以下の記事では主に Python のコマンドラインパラメータ解析ツール docopt の関連情報を紹介しています。必要な方は以下を参照してください。

はじめに

docopt はオープンソース ライブラリです。 README で詳しく紹介されており、学習用の例も多数付属しています。この記事も README の内容を翻訳しています...

docopt の最大の特徴は、コマンドを解析する方法を考える必要がないことです。 lineパラメータですが、一定のルールに従って希望のフォーマットを書き出すと解析が完了します。

docopt のインストール

docopt には多くのバージョンがあり、それぞれが異なる言語をサポートしています。最も単純な docopt は Python スクリプトをサポートし、docopt.java は Java スクリプトをサポートし、docopts はシェル スクリプトをサポートします (以下の例は主に docopt を例にしています)。詳細については、github の docopt の説明を参照してください

docot のインストール

mac os を使用する より簡単な方法は、pip で直接インストールすることです、pip install docopt==0.6.2

一部の Mac は直接 pip 命令をサポートしていない場合があります。最初に pip をインストールする必要があります

方法 2pip install docopt==0.6.2

有些mac可能不支持直接pip 指令,需要先安装pip

方法二

也可以在github上下载源码(docopt是开源项目),然后通过python setup.py install 安装

安装docopts

安装docopts就必须使用上面安装docopt的方法二,在GitHub上下载源码,然后 使用python安装,下载地址

docopt 的实现简单分析

在 Python 中有这么一个属性 __doc__ ,它的值是字符串,一般表示帮助信息,而 docopt 正是利用了这一属性,把帮助信息替换成命令行参数解析说明,再对它进行解析即可。

举个 docopt 中的例子来说明:


"""Naval Fate.
Usage:
 naval_fate.py ship new <name>...
 naval_fate.py ship <name> move <x> <y> [--speed=<kn>]
 naval_fate.py ship shoot <x> <y>
 naval_fate.py mine (set|remove) <x> <y> [--moored | --drifting]
 naval_fate.py (-h | --help)
 naval_fate.py --version
Options:
 -h --help  Show this screen.
 --version  Show version.
 --speed=<kn> Speed in knots [default: 10].
 --moored  Moored (anchored) mine.
 --drifting Drifting mine.
"""
from docopt import docopt
if __name__ == &#39;__main__&#39;:
 arguments = docopt(__doc__, version=&#39;Naval Fate 2.0&#39;)
 print(arguments)
ログイン後にコピー

上述代码段中,很大一段帮助信息就是我们的命令行参数解析说明,在函数入口处调用docopt函数进行解析,返回的arguments变量是一个字典型变量,它记录了选项是否被选用了,参数的值是什么等信息,当程序从命令行运行时,我们就是根据arguments变量的记录来得知用户输入的选项和参数信息。

所以如何写好命令行参数解析说明就变得至关重要了,命令行解析信息包含两部分,分别是使用模式格式和选项描述格式。

使用模式格式(Usage pattern format)

使用模式以usage:开始,以空行结束,如上代码段所示,它主要描述了用户添加命令行参数时的格式,也就是使用时的格式,解析也是按照此格式来进行的。

每一个使用模式都包含如下元素:

* 参数

参数使用大写字母或者使用尖括号<>围起来。

* 选项

选项以短横线开始-或者--。只有一个字母时格式-o,多于一个字母时--output。同时还可以把多个单字母的选项合并,-ovi等同于-o、-v、-i。选项也能有参数,此时别忘了给选项添加描述说明。

接下来是使用模式中用到的一些标识的含义,正确地使用他们能够更好的完成解析任务:

* []

代表可选的元素,方括号内的元素可有可无

* ()

代表必须要有的元素,括号内的元素必须要有,哪怕是多个里面选一个。

* |

互斥的元素,竖线两旁的元素只能有一个留下

* ...

代表元素可以重复出现,最后解析的结果是一个列表

* [options]

指定特定的选项,完成特定的任务。

选项描述格式(Option description format)

选项描述同样必不可少,尤其是当选项有参数,并且还需要为它赋默认值时。

为选项添加参数的格式有两种:


-o FILE --output-FILE  # 不使用逗号,使用 = 符号
-i <file>, --input <file> # 使用逗号,不使用 = 符号
ログイン後にコピー

为选项添加描述说明,只需要用两个空格分隔选项和说明即可。

为选项添加默认值时,把它添加到选择描述后面即可,格式如下[default: ]


--coefficient=K The K coefficient [default: 2.95]
--output=FILE Output file [default: test.txt]
--directory=DIR Some directory [default: ./]
ログイン後にコピー

如果选项是可以重复的,那么它的值[default: ...]

github にインストールすることもできます。ソース コード (docopt はオープン ソース プロジェクトです) をダウンロードし、python を通じてインストールします。 setup.py install

docopts をインストールするには docopt をインストールするには、上記の方法 2 を使用して docopt をインストールし、GitHub でソース コードをダウンロードしてから、Python を使用してインストールし、アドレスをダウンロードする必要があります

docopt の実装の簡単な分析

🎜🎜 Python __doc__ にはそのような属性があり、その値は一般にヘルプ情報を示す文字列であり、docopt はヘルプ情報を置き換えるために使用されますコマンドラインパラメータ解析命令を使用して、それを解析します。 🎜🎜🎜説明するために docopt の例を見てみましょう: 🎜🎜


🎜

python3 test.py ship Guardian move 100 150 --speed=15
ログイン後にコピー
ログイン後にコピー
🎜 上記のコード セグメントでは、大きなヘルプ情報はコマンド ライン パラメーターの解析命令です。関数 docopt 関数は、解析の入り口で呼び出されます。返される引数変数は、オプションが選択されているかどうか、パラメーターの値が何であるか、およびプログラムがコマンドから実行されたときのその他の情報を記録します。行では、ユーザーが入力したオプションとパラメータ情報を知るために、引数変数のレコードを使用します。 🎜🎜 したがって、コマンド ライン パラメーターの解析命令をどのように記述するかが非常に重要になります。コマンド ライン解析情報には、使用パターン形式とオプション記述形式の 2 つの部分が含まれます。 🎜🎜🎜🎜使用パターンの形式 (使用パターンの形式) 🎜🎜🎜🎜 使用パターンは、上記のコード スニペットに示すように、usage: で始まり、空白行で終わります。主に、ユーザーがコマンド ライン パラメーターを追加するときの形式について説明します。 、つまりフォーマットを使用しており、分析もこのフォーマットに従って実行されます。 🎜🎜各使用パターンには次の要素が含まれます:
🎜🎜* パラメータ
🎜🎜パラメータは大文字で記述するか、山かっこ <> で囲む必要があります。
🎜🎜* オプション
🎜🎜 オプションはダッシュ - または - で始まります。文字が 1 つだけの場合、形式は -o で、複数の文字がある場合は --output です。同時に、複数の 1 文字のオプションを組み合わせることもできます。-ovi は、-o、-v、-i と同等です。オプションにはパラメーターを含めることもできます。このとき、オプションに説明を追加することを忘れないでください。 🎜🎜使用パターンで使用されるいくつかの識別子の意味は次のとおりです。これらを正しく使用すると、解析タスクをより適切に完了できます。
🎜🎜* []
🎜🎜 は、括弧内の要素を表します。はオプションです
🎜🎜* ()
🎜🎜 は、複数の要素から 1 つを選択する場合でも、存在する必要がある要素を表します。
🎜🎜* |
🎜🎜相互に排他的な要素、垂直線の両側に 1 つの要素のみを残すことができます
🎜🎜* ...
🎜🎜 は、要素は繰り返すことができます。表示され、最終的な解析結果はリストです。
🎜🎜* [オプション]
🎜🎜特定のタスクを完了するには、特定のオプションを指定します。 🎜🎜🎜🎜オプションの説明の形式 🎜🎜🎜🎜オプションの説明も、特にオプションにパラメーターがあり、デフォルト値を割り当てる必要がある場合には必須です。 🎜🎜オプションにパラメータを追加するには 2 つの形式があります: 🎜


🎜

{&#39;--drifting&#39;: False,
 &#39;--help&#39;: False,
 &#39;--moored&#39;: False,
 &#39;--speed&#39;: &#39;15&#39;,
 &#39;--version&#39;: False,
 &#39;<name>&#39;: [&#39;Guardian&#39;],
 &#39;<x>&#39;: &#39;100&#39;,
 &#39;<y>&#39;: &#39;150&#39;,
 &#39;mine&#39;: False,
 &#39;move&#39;: True,
 &#39;new&#39;: False,
 &#39;remove&#39;: False,
 &#39;set&#39;: False,
 &#39;ship&#39;: True,
 &#39;shoot&#39;: False}
ログイン後にコピー
ログイン後にコピー
🎜 オプションの説明を追加するには、オプションと説明を 2 つのスペースで区切ります。 🎜🎜オプションにデフォルト値を追加する場合は、選択の説明の後に追加するだけです。形式は次のとおりです [default: ]🎜


🎜 rrreee🎜オプションが繰り返し可能な場合、その値はリストになります。繰り返しできない場合、その値は文字列になります。 🎜🎜🎜🎜Use 🎜🎜🎜🎜使用パターンの形式とオプションの説明の形式を理解した後、示されている例を使用すると、よりよく理解できます。 🎜🎜次のステップは、入力された情報を取得することです。 🎜

在前面提到arguments参数是一个字典类型,包含了用户输入的选项和参数信息,还是上面的代码段例子,假如我们从命令行运行的输入是


python3 test.py ship Guardian move 100 150 --speed=15
ログイン後にコピー
ログイン後にコピー

那么打印arguments参数如下:


{&#39;--drifting&#39;: False,
 &#39;--help&#39;: False,
 &#39;--moored&#39;: False,
 &#39;--speed&#39;: &#39;15&#39;,
 &#39;--version&#39;: False,
 &#39;<name>&#39;: [&#39;Guardian&#39;],
 &#39;<x>&#39;: &#39;100&#39;,
 &#39;<y>&#39;: &#39;150&#39;,
 &#39;mine&#39;: False,
 &#39;move&#39;: True,
 &#39;new&#39;: False,
 &#39;remove&#39;: False,
 &#39;set&#39;: False,
 &#39;ship&#39;: True,
 &#39;shoot&#39;: False}
ログイン後にコピー
ログイン後にコピー

从打印信息可以看到,对于选项,使用布尔型来表示用户是否输入了该选项,对于参数,则使用具体值来表述。

这样一来,程序就可以从arguments变量中得到下一步的操作了。若是用户什么参数都没输入,则打印Usage说明提示输入内容。

以上がPython のコマンド ライン パラメーター解析ツールである docopt の使用方法の詳細な紹介の詳細内容です。詳細については、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の 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:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとPython:彼らの歴史を深く掘り下げます PHPとPython:彼らの歴史を深く掘り下げます Apr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Sublime Code Pythonを実行する方法 Sublime Code Pythonを実行する方法 Apr 16, 2025 am 08:48 AM

PythonコードをSublimeテキストで実行するには、最初にPythonプラグインをインストールし、次に.pyファイルを作成してコードを書き込み、Ctrl Bを押してコードを実行する必要があります。コードを実行すると、出力がコンソールに表示されます。

vscodeでコードを書く場所 vscodeでコードを書く場所 Apr 15, 2025 pm 09:54 PM

Visual Studioコード(VSCODE)でコードを作成するのはシンプルで使いやすいです。 VSCODEをインストールし、プロジェクトの作成、言語の選択、ファイルの作成、コードの書き込み、保存して実行します。 VSCODEの利点には、クロスプラットフォーム、フリーおよびオープンソース、強力な機能、リッチエクステンション、軽量で高速が含まれます。

Visual StudioコードはPythonで使用できますか Visual StudioコードはPythonで使用できますか Apr 15, 2025 pm 08:18 PM

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

メモ帳でPythonを実行する方法 メモ帳でPythonを実行する方法 Apr 16, 2025 pm 07:33 PM

メモ帳でPythonコードを実行するには、Python実行可能ファイルとNPPEXECプラグインをインストールする必要があります。 Pythonをインストールしてパスを追加した後、nppexecプラグインでコマンド「python」とパラメーター "{current_directory} {file_name}"を構成して、メモ帳のショートカットキー「F6」を介してPythonコードを実行します。

See all articles