0

私はPythonの初心者です。Linuxで実行されるスクリプトをコーディングしたいと思います。ユーザーがすべてのスクリプト引数を入力したかどうかをテストするには、次のようにします。

  • ユーザータイプの場合:myscript =>print "Usage: myscript [Dir] [Old] [New]"
  • ユーザータイプの場合:myscript Dir =>print "Please enter Old and New"
  • ユーザータイプの場合:myscript Dir Old =>print "Please enter New"
  • ユーザーが必要なすべての引数を入力した場合は、main()を実行します。

myscriptをコーディングする方法は?

4

3 に答える 3

7
#! /usr/bin/python3.2

import sys

if __name__ == '__main__':
    if len (sys.argv) < 4:
        print ( ['Usage: myscript [Dir] [Old] [New]',
            'Please enter Old and New',
            'Please enter New'] [len (sys.argv) - 1] )

または、argparseを使用できます。これはあなたが質問で求めたことをしませんが、うまくいけばJFセバスティアンをなだめるでしょう。

#! /usr/bin/python3.2

import argparse

if __name__ == '__main__':
    p = argparse.ArgumentParser (description = 'What your program does.')
    p.add_argument ('dir', metavar = 'dir', type = str, help = 'The directory')
    p.add_argument ('old', metavar = 'old', type = str, help = 'The old value')
    p.add_argument ('new', metavar = 'new', type = str, help = 'The new value')
    args = p.parse_args ()
于 2013-01-10T04:19:09.283 に答える
2

の値を確認するだけですlen(sys.argv)。最初の引数はPythonファイル名自体になることに注意してください。

このような:

import sys

argc = len(sys.argv)

if argc < 2:
    print "Usage: myscript [Dir] [Old] [New]"
    sys.exit();
elif argc < 3:
    print "Please enter Old and New"
    sys.exit();
elif argc < 4:
    print "Please enter New"
    sys.exit();

main()
于 2013-01-10T04:14:26.367 に答える
0

スクリプトの実行時に渡されるすべての引数は、に配置されsys.argvます。あなたはimport sys最初にしなければなりません。そして、あなたが望むように議論を通過します。何をすべきかを決定するために必要な引数の数を数えることを検討するかもしれません。また、最初の引数は常にスクリプトの名前であることに注意してください。

于 2013-01-10T04:14:11.247 に答える