python argparse数组而不是str

时间:2018-08-29 23:14:21

标签: python argparse

使用argparse时遇到问题。使用以下代码,我期望 args.dir是一个字符串,但是我得到了一个数组。我怎样才能得到一个字符串?有人可以帮忙吗?

#!/usr/bin/env python3

import sys
import argparse

#import mysql.connector

# Set version number
version = '1.0.0'

# Parse arguments supplied on the commandline
argparser = argparse.ArgumentParser(description=sys.argv[0])
argparser.add_argument('dir', nargs=1, type=str, help='directory to view')
args = argparser.parse_args()

# Print program name and version number to stdout
print(argparser.prog + " v" + version)
print('Creating index for: ' + args.dir[0])

1 个答案:

答案 0 :(得分:3)

您指出了nargs=1,即使您提供了值1,argparse也会为您建立一个列表(类似于数组,但not exactly the same thing)。这实际上是有帮助的,因为您可以保证当您指示nargs时,总会得到一个列表。

删除nargs参数,您将得到一个字符串而不是一个列表。