플래그와 변수의 역할을하는 프로그램에 옵션을 지정하고 싶습니다. 예 : "--logging"이라는 인수가 있습니다. 이 인수를 지정하지 않으면 false로 설정하고 싶습니다 (예 : action = 'store_true'). 그러나 인수가 지정되면 두 가지 작업을 수행하려고합니다. 1) "./log_file.log"의 기본 경로를 설정하고 2) 사용자가 다른 로그 파일 위치를 지정할 수 있도록하고 싶습니다.플래그와 변수를 결합한 Python argparse
3
A
답변
-1
예 문제는 없습니다. 이 양식을 테스트하고 출력 값을 나중에 코드에서 (당신을 위해 의미가 무엇으로 대체)하는 logging_on를 사용할 수있는 우수한 PyMOTW about argparse
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--logging', action='store_true', default=False,
dest='logging_on',
help='Activate the logging')
results = parser.parse_args()
설명 할 수 있습니다. 또한 구성 파일 또는/및 파일 로그 경로에 대한 인수를 사용할 수 있습니다.
6
맞아요. 그래서이 문제에 대한 해결책을 찾았습니다. 그것은 nargs에 의존합니다. 그 예를 감안할 때
#!/usr/bin/python
# example.py
import argparse
parser = argparse.ArgumentParser(description="Example of a single flag acting as a boolean and an option.")
parser.add_argument('--foo', nargs='?', const="bar", default=False)
args = parser.parse_args()
if args.foo:
print args.foo
else:
print "Using the default, boolean False."
여기, 우리는 세 가지 상황에서 사용할 때 발생하는 것입니다 : 여기에 첫 번째 코드는
> ./example.py
Using the default, boolean False.
> ./example.py --foo
bar
> ./example.py --foo baz
baz
을 희망 위의 꽤 자기 설명이다. 만약 그렇지 않다면, nargs = '?' 플래그가 지정되지 않은 경우 (우리의 경우 부울 False), 인수없이 플래그가 지정되면 const 값을, 플래그가 인수로 지정되면 인수를 사용합니다. False를 따옴표로 묶지 않도록주의하십시오. 거짓은 내장 유형 (부울)이고 '거짓'또는 '거짓'은 참으로 평가됩니다.
이것은 내 문제를 해결하지 못합니다. True/False 플래그를 만들뿐만 아니라 기본값이나 사용자 지정 값을 유지할 수도 있습니다. 나는 내 자신의 문제를 해결했습니다! – Calcipher
@Calcipher 아 멋지다. 자신의 것을 해결 된 것으로 표시하십시오. – karlcow