我發現argparse在參數前添加了額外的空間。基於下面Python argparse在參數前添加額外空間
def parse_arguments():
parser = argparse.ArgumentParser(
prog='sample',
description='bla bla',
parser.add_argument('-s', '--search', dest='pattern', required=True,
help='search path pattern (e.g. /dir1/dir2/*.ext)')
args = parser.parse_args()
if args.pattern[0] == ' ':
print "One space is added to the argument"
return args
示例代碼和測試在交互式shell爲:
import sys
sys.argv = ['', '-s /Users/user/Desktop/test']
execfile('test.py')
提供自變量sys.argv = ['', '-s=/Users/user/Desktop/test']
不會引起這樣的加(從https://stackoverflow.com/a/36376287/2101864激勵)。
這是記錄的行爲還是我錯過了什麼?因爲通常用戶提供的參數在參數標記和值之間添加空格。
謝謝@aneroid您的詳細說明。 –