파이썬에서 argparse와 logging 모듈을 모두 사용하려고합니다. 가능한 옵션이 많은 프로그램을 실행했고 argpse 모듈을 성공적으로 구현하여이 작업을 처리했습니다.파이썬에서 argparse의 값을 기록하십시오.
프로그램을 실행하고 로그 파일로 보낼 때 각 옵션의 값을 기록하고 싶습니다. 나는 다음과 같은 것들을 시도해 보았고 나는 그 밑에 주석으로 만난 관련된 오류를 포함시켰다.
parser = argparse.ArgumentParser()
parser.add_argument('input', action="store", default='fort.13', type=str)
args = parser.parse_args()
# First try:
logging.info("Input args: " + args)
# TypeError: cannot concatenate 'str' and 'Namespace' objects
# Second try:
for x in args:
logging.info(x)
# TypeError: 'Namespace' object is not iterable
이 작업을 수행하는 적절한 방법은 무엇입니까?
당신은'logging.info ("인자 % s : % r"% (n, v))'가되도록 조정할 필요가 있다고 생각합니다. 하나의 이상한 행동이지만, 내 코드에 이것을 추가하면 더 이상 .log 파일을 출력하지 않습니다. 주석을 달고 다시 실행하면 로그 파일이 남아 있습니다. 로그 파일의 작성 여부와 관련된 이상한 일을하는 이유는 무엇입니까? – JBWhitmore
지금 코드를 몇 번 바꿨습니다 ... –
@JBWhitmore : 로깅 모듈을 사용하면 문자열 형식을 직접 지정하지 않고 로깅 할 수 있습니다. 로그 파일에 무슨 문제가 있는지 잘 모르겠습니다 ... –