3

optparsePythonのモジュールを介して入力を受け入れるPythonスクリプトを作成しました。からsys.argvも入力を受け取ります。

どちらかを使用すると、プログラムは正しく動作します。例えば:

python dperf.py -m 1 -c 2 -n 3
python dperf.py foobar 

ただし、この方法で入力を行うとそうではありません。

python dperf.py foobar -m 1 -c 2 -n 3

使い方に間違いはありsys.argvませんか?

parser = optparse.OptionParser()
#migration
parser.add_option("-m", type="float", dest="migr")
#collection
parser.add_option("-c", type="float", dest="coll")
#num of lines to read
parser.add_option("-n", type="float", dest="fileread")
(options, args) = parser.parse_args()

ti =  options.migr
colle =  options.coll
linereadfiles =  options.fileread

apps = sys.argv[1:]
4

1 に答える 1

8

のを介してオプションを解析する場合はparse_args()、直接OptionParser使用しないでください。代わりに、で解析されていない部分が含まれているはずのが返されます。sys.argvargsOptionParser

たとえば、コードで置換

 apps = sys.argv[1:]

apps = args

(または単にスクラップしappsて続行しargsます)。

于 2013-02-12T20:23:45.943 に答える