[파이썬] argparse와 JSON 파일 처리

소개

argparse는 파이썬의 표준 라이브러리로, 명령행 인자 파싱을 간단하게 해주는 도구입니다. JSON은 JavaScript Object Notation의 약자로, 데이터를 교환하기 위한 경량의 형식입니다. 이 문서에서는 argparse와 JSON 파일 처리를 함께 사용하는 방법에 대해 알아보겠습니다.

argparse의 기본 사용법

argparse를 사용하기 위해서는 argparse 모듈을 import 해야 합니다. 다음은 간단한 예제 코드입니다.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("input_file", help="JSON input file")
parser.add_argument("--output_file", help="JSON output file")

args = parser.parse_args()

print("Input File:", args.input_file)
print("Output File:", args.output_file)

위 코드에서는 argparse.ArgumentParser()를 통해 ArgumentParser 객체를 생성하고, add_argument() 메서드를 사용하여 명령행 인자를 정의합니다.

"input_file"은 필수 인자로, help 파라미터를 통해 해당 인자의 설명을 작성할 수 있습니다. --output_file는 선택적 인자로, -- 접두사를 붙여 사용합니다.

parse_args() 메서드를 호출하여 입력된 명령행 인자를 파싱하고, args 객체에 저장됩니다. 이후 args 객체를 통해 인자 값을 사용할 수 있습니다.

JSON 파일 처리

이제 argparse를 사용하여 입력된 JSON 파일을 처리하는 예제를 살펴보겠습니다. 아래 코드는 input_file로 지정된 JSON 파일을 읽어와 output_file로 지정된 파일에 데이터를 저장하는 간단한 예제입니다.

import argparse
import json

parser = argparse.ArgumentParser()
parser.add_argument("input_file", help="JSON input file")
parser.add_argument("--output_file", help="JSON output file")

args = parser.parse_args()

# JSON 파일 읽기
with open(args.input_file, 'r') as f:
    data = json.load(f)

# 데이터 가공 및 처리 (예시)
processed_data = []
for item in data:
    processed_data.append({"name": item["name"], "age": item["age"] * 2})

# JSON 파일 쓰기
with open(args.output_file, 'w') as f:
    json.dump(processed_data, f, indent=4)

print("Data processing is complete.")

위 코드에서는 json 모듈을 import 하여 JSON 파일을 읽고 쓰는 기능을 사용하였습니다. json.load() 메서드를 통해 JSON 파일을 읽어와 파이썬 객체로 변환하고, json.dump() 메서드를 통해 파이썬 객체를 JSON 파일로 변환하여 저장합니다.

JSON 파일 처리 부분에는 실제 데이터 처리 로직을 작성해야 하며, 예시로 간단하게 데이터에 연산을 수행하는 코드를 작성하였습니다.

실행 예시

$ python myscript.py input.json --output_file=output.json
Input File: input.json
Output File: output.json
Data processing is complete.

이렇게 argparse와 JSON 파일 처리를 함께 사용하여 유연하고 간편하게 명령행 인자를 처리하고 JSON 파일을 다룰 수 있습니다. argparse는 복잡한 명령행 인자를 처리하는 과정을 단순화하며, JSON 파일 처리 기능을 함께 사용하면 데이터 처리 작업을 보다 효율적으로 수행할 수 있습니다.