Pythonスクリプトとdocstringがあります。コマンドライン引数の解析が成功しない場合、ユーザー情報のdocstringを出力したいと思います。
これを行う方法はありますか?
#!/usr/bin/env python
"""
Usage: script.py
This describes the script.
"""
import sys
if len(sys.argv) < 2:
print("<here comes the docstring>")
Docstringは、モジュールの___doc__
_グローバルに保存されます。
_print(__doc__)
_
ちなみに、これはすべてのモジュールに適用されます:import sys; print(sys.__doc__)
。関数とクラスのドキュメント文字列も___doc__
_属性にあります。
スクリプトのファイル名をハードコードせず、代わりにsys.argv [0]を使用して印刷する代替方法を次に示します。 %sの代わりに%(scriptName)sを使用すると、コードが読みやすくなります。
#!/usr/bin/env python
"""
Usage: %(scriptName)s
This describes the script.
"""
import sys
if len(sys.argv) < 2:
print __doc__ % {'scriptName' : sys.argv[0].split("/")[-1]}
sys.exit(0)
引数の解析は、常に argparse
で行う必要があります。
Argparseのdescription
パラメーターに渡すことで、__doc__
文字列を表示できます。
#!/usr/bin/env python
"""
This describes the script.
"""
if __== '__main__':
from argparse import ArgumentParser
parser = ArgumentParser(description=__doc__)
# Add your arguments here
parser.add_argument("-f", "--file", dest="myFilenameVariable",
required=True,
help="write report to FILE", metavar="FILE")
args = parser.parse_args()
print(args.myFilenameVariable)
これをmysuperscript.py呼び出して実行すると、次のようになります:
$ ./mysuperscript.py --help
usage: mysuperscript.py [-h] -f FILE
This describes the script.
optional arguments:
-h, --help show this help message and exit
-f FILE, --file FILE write report to FILE
私はそのような問題を手に入れ、ウェブ上を歩いてみて、幸運にも答えを見つけ、sys
モジュールを学び、Pythonでスクリプトを作成しました。ここにあります
if __name__=='__main__':
if len(sys.argv)==2 and sys.argv[1]=='--help':
print(__doc__)
./yourscriptname.py --help
またはpython3 yourscriptname.py --help
と入力すると、docstringが表示されます