3

私はファイル クローラーを作成し、それを拡張しようとしています。コマンドラインで開始ディレクトリを渡すなど、スクリプトの設定を処理するために argparse を使用したいと考えています。

例:/var/some/directory/

他にもいくつかの引数を取得しましたが、このディレクトリを正しく渡すことができません。フラグが前に付いているかどうかは気にしませんが (例: -d /path/to/start/)、スクリプトを実行するための唯一の必須オプションになるため、少なくともこれが引数として使用されていることを確認する必要があります。

コードサンプル:

parser = argparse.ArgumentParser(description='py pub crawler...')
parser.add_argument('-v', '--verbose', help='verbose output from crawler', action="store_true")
parser.add_argument('-d', '--dump', help='dumps and replaces existing dictionaries', action="store_true")
parser.add_argument('-f', '--fake', help='crawl only, nothing stored to DB', action="store_true")

args = parser.parse_args()

if args.verbose:
    verbose = True
if args.dump:
    dump = True
if args.fake:
    fake = True
4

1 に答える 1

4

単に追加します:

parser.add_argument('directory',help='directory to use',action='store')

あなたのargs = parser.parse_args()ラインの前に。コマンドラインからの簡単なテストは、それが正しいことをすることを示しています(argsスクリプトの最後に印刷します):

$ python test.py /foo/bar/baz
Namespace(directory='/foo/bar/baz', dump=False, fake=False, verbose=False)
$ python test.py
usage: test.py [-h] [-v] [-d] [-f] directory
test.py: error: too few arguments
于 2013-03-12T17:43:09.713 に答える