[파이썬] argparse와 배치 파일 처리

Python은 강력한 프로그래밍 언어이며, 다양한 기능을 제공합니다. 그 중에서도 argparse 모듈은 명령행 인자를 간편하게 처리할 수 있는 도구입니다. 또한, 파일 처리는 자주 사용되는 기능 중 하나입니다. 이번 글에서는 Python의 argparse 모듈을 사용하여 배치 파일 처리를 하는 방법에 대해 알아보겠습니다.

argparse 모듈

argparse 모듈은 명령행 인자를 파싱하는 기능을 제공해줍니다. 이 모듈을 사용하면 사용자가 프로그램을 실행할 때 특정한 인자를 전달할 수 있습니다. 이와 같은 인자를 활용하여 프로그램의 동작을 조정할 수 있습니다.

예를 들어, 다음과 같은 argparse 코드를 작성해보겠습니다.

import argparse

parser = argparse.ArgumentParser(description='이것은 인자를 받아들이는 프로그램입니다.')
parser.add_argument('input_file', type=str, help='입력 파일의 경로')
parser.add_argument('output_file', type=str, help='출력 파일의 경로')

args = parser.parse_args()

print(args.input_file)
print(args.output_file)

이 코드는 두 개의 필수 인자를 받아들이는 프로그램입니다. 사용자는 터미널에서 다음과 같이 실행할 수 있습니다.

$ python my_program.py input.txt output.txt

인자를 정확히 입력하면, args.input_fileargs.output_file에 각각 전달한 값을 얻을 수 있습니다. 이제 이 인자를 활용하여 파일을 처리해보겠습니다.

배치 파일 처리

파일 처리는 Python 프로그래밍에서 자주 사용되는 기능입니다. 배치 파일 처리를 위해서는 argparse 모듈과 함께 내장 함수인 open을 사용하여 파일을 열고, 읽거나 쓸 수 있습니다. 아래의 코드는 인자로 받은 입력 파일을 읽고, 그 내용을 출력 파일에 씁니다.

import argparse

parser = argparse.ArgumentParser(description='배치 파일 처리 프로그램입니다.')
parser.add_argument('input_file', type=str, help='입력 파일의 경로')
parser.add_argument('output_file', type=str, help='출력 파일의 경로')

args = parser.parse_args()

try:
    with open(args.input_file, 'r') as input_file:
        content = input_file.read()
        print(f"입력 파일 내용: {content}")

        with open(args.output_file, 'w') as output_file:
            output_file.write(content)
            print(f"출력 파일에 내용을 씁니다.")
except FileNotFoundError:
    print("파일이 존재하지 않습니다.")

이제 터미널에서 다음과 같이 실행해보세요.

$ python batch_processing.py input.txt output.txt

결과적으로 input.txt의 내용이 output.txt에 복사되어 출력됩니다. 또한, 파일이 존재하지 않는 경우에는 에러 메시지가 출력됩니다.

이처럼, argparse와 파일 처리를 함께 사용하여 프로그램의 유연성과 확장성을 높일 수 있습니다. 파이썬의 다양한 내장 모듈과 기능을 활용하여 원하는 로직을 구현해보세요!