2016-07-23 2 views
0

argparse를 사용하여 파일에 수신되는 인수 값 &의 인수 이름을 쓰려고합니다. 지금까지이 있습니다 --infile와Python argparse에서 파일로 인수 이름을 쓰려면 어떻게해야합니까?

import argparse 

parser = argparse.ArgumentParser() 
parser.add_argument("--infile", help = "seed file", default = 'test') 
parser.add_argument("--lang", help="wiki language bigram", default = 'en') 
parser.add_argument("--request_type", help="request type", default = 'sum') 
parser.add_argument("--outfile", help = "path to outfile", default = 'outfile') 
parser.add_argument("--summary", help = "true or false", action = "store_true") 
parser.add_argument("--pagehits", help = "path to list of page hits", default = 'pagehits') 
parser.add_argument("--exemplar_file", help = "file to inspire book") 

args = parser.parse_args() 

input_file = args.infile 
print(args.infile) 
print(var(args)) 

with open('modified-variables', 'w') as outfile: 
    outfile.write(args.infile) 
    outfile.write('hello world') 

"/ 경로 /로/파일"--lang을 "엉"출력은 다음과 같습니다

/path/to/file 
en 

[but nothing written to file] 

내가 모든 위치를 통해 루프를 원하는 은/쓰기와 CONSTRUC에 뭔가 간단한 잘못된 매개 변수와

infile="/path/to/file" 
lang="en" 

인터넷 검색이 나를 argnames를 인쇄하는 방법을 알아낼 도움이되지 않는 형식으로 수정-변수를 명령 줄에서 제공되는 모든 쓰기가 티.

UPDATE : 산출 대답 # 1 당 추가 인쇄 (바르 ((인수)) :

{'lang': 'en', 'exemplar_file': None, 'pagehits': 'pagehits', 'summary': False, 'outfile': '/tmp/pagekicker/123/out_test', 'request_type': 'sum', 'infile': '/home/fred/pagekicker-community/scripts/seeds/revolutionary-figures'} 

지금 난 그냥 쓰고 싶은

LANG = "EN" exemplar_file = "없음"

등 파일에

.

+0

왜'parse_args'를 두 번 호출하고 있습니까? – chepner

+0

오류입니다. 수정 됨 –

답변

1

가 되세요

print(args) # the default Namespace display format 

또는

print(vars(args)) 

vars(args)

을 시도하면 다양한 방법으로 표시 할 수있는 사전이다. 튜플 ( .items())의 목록으로 변환하고, keys 등을 반복 할 수 있습니다.

관련 문제