2015-01-04 4 views
0

파일 조작을 위해 python에서 argparse를 사용해야합니까? 모든 온라인 예제는 명령 행 인수 자체의 간단한 조작에 관한 것입니다. 좀 더 구체적으로 말하면, 나는 3 가지 특정 파일 조작 작업을 가지고 있는데, 그것들을 a, b, c라고 부르 자. 예를 들어, 실행파일 조작을위한 argparse

python -i input.csv -a -b 

은 input.csv에서 작업 a와 b를 실행해야합니다.

argparse가 실제로 적합한 경우 어떻게해야합니까? 나의 현재 계획은 코드를 더 확장 가능하고 재사용 할 수 있도록 각 작업에 대한 사용자 지정 작업을 정의하는 것입니다. 어떤 제안?

답변

2

예. 파일 이름에 argparse를 완벽하게 사용할 수 있습니다. 예 :

parser = argparse.ArgumentParser() 
parser.add_argument("-i", type=str, help="...") 
parser.add_argument('-a', dest='task_a', action='store_true', help="...") 
parser.add_argument('-b', dest='task_b', action='store_true', help="...") 

parser.set_defaults(task_a=False) 
parser.set_defaults(task_b=False) 

args = parser.parse_args() 

file_name = args.i 
# or file_name = os.path.expanduser(args.i) 

if os.path.isfile(file_name): 
    file = open(file_name, 'rb') 
    # and now do whatever you need to do with the file 
    if args.task_a: 
     ... 
    if args.task_b: 
     ... 

    file.close() 
+0

'set_defaults' 줄은 필요 없습니다. 'store_true'는 직접 저장합니다. – hpaulj