Python 使用argparse传递目录(无需类型检查)

Python 使用argparse传递目录(无需类型检查),python,argparse,Python,Argparse,我已经写了一个文件爬虫,我正在尝试扩展它。我想使用argparse来处理脚本的设置,包括在命令行中传入起始目录 示例:/var/some/directory/ 我已经得到了其他几个参数,但我无法正确地传递这个目录。我不在乎它前面是否有标志(例如-d/path/to/start/),但我需要确保至少使用此is参数,因为它将是脚本运行的唯一强制选项 代码示例: parser = argparse.ArgumentParser(description='py pub crawler...') pars

我已经写了一个文件爬虫,我正在尝试扩展它。我想使用argparse来处理脚本的设置,包括在命令行中传入起始目录

示例:
/var/some/directory/

我已经得到了其他几个参数,但我无法正确地传递这个目录。我不在乎它前面是否有标志(例如
-d/path/to/start/
),但我需要确保至少使用此is参数,因为它将是脚本运行的唯一强制选项

代码示例:

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
只需添加:

parser.add_argument('directory',help='directory to use',action='store')
args=parser.parse_args()
行之前。命令行的一个简单测试表明它做了正确的事情(在脚本末尾打印
args
):


你能展示你的代码吗?这应该是一件很容易做到的事。。。也许看到你的代码会帮助我们了解你的困难所在。我现在没有任何东西可以传递目录。我尝试了各种选项,但没有得到任何值得保留的结果。如果您确实想要进行类型检查,请参阅:我是否可以使用
'directory'
作为从该点开始保存路径的变量?@frankV--它将是
args.directory
,但如果您愿意,您可以轻松地执行
directory=args.directory
$ 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