[python] cx_Freeze를 사용하여 작성한 실행 파일의 시간 및 날짜 관리 방법

cx_Freeze는 파이썬 프로그램을 실행 파일로 변환해주는 도구입니다. 실행 파일은 프로그램을 실행시키는 파일로서, 다른 컴퓨터에 설치 없이도 해당 프로그램을 실행할 수 있게 해줍니다. 실행 파일의 시간 및 날짜 정보는 프로그램 버전 관리나 로깅 등에 활용될 수 있습니다. 이번 글에서는 cx_Freeze를 사용하여 생성한 실행 파일의 시간 및 날짜 정보를 관리하는 방법에 대해 알아보겠습니다.

1. cx_Freeze를 사용하여 실행 파일 생성하기

우선 cx_Freeze를 사용하여 실행 파일을 생성하는 방법에 대해서 알아보겠습니다. cx_Freeze는 파이썬 패키지로서, 다음과 같이 pip를 통해 설치할 수 있습니다.

pip install cx_Freeze

cx_Freeze를 설치한 후에는 다음과 같이 setup.py 파일을 생성하여 실행 파일을 생성할 수 있습니다.

from cx_Freeze import setup, Executable

# 실행 파일에 포함시킬 파일 및 디렉토리
include_files = []

# 실행 파일 생성 옵션 설정
options = {
    'build_exe': {
        'include_files': include_files
    }
}

# 실행 파일 정보 및 옵션 설정
setup(
    name='<app_name>',
    version='<app_version>',
    description='<app_description>',
    options=options,
    executables=[Executable('<entry_point>', base='<base_executable>')]
)

setup.py 파일에는 실행 파일에 포함시킬 파일 및 디렉토리를 지정하는 include_files 변수와 실행 파일 생성 옵션을 설정하는 options 변수가 있습니다. name, version, description, executables 등의 정보를 설정하여 실행 파일의 정보를 지정할 수 있습니다.

2. 실행 파일의 시간 및 날짜 정보 관리하기

cx_Freeze를 사용하여 생성한 실행 파일의 시간 및 날짜 정보를 관리하기 위해서는 다음과 같은 방법을 사용할 수 있습니다.

2.1. 현재 시간 및 날짜 정보 얻기

파이썬의 datetime 모듈을 사용하여 현재 시간 및 날짜 정보를 얻을 수 있습니다. 아래 예제 코드는 현재 시간 및 날짜를 문자열로 반환하는 함수입니다.

from datetime import datetime

def get_current_time():
    now = datetime.now()
    return now.strftime("%Y-%m-%d %H:%M:%S")

2.2. 실행 파일에 시간 및 날짜 정보 삽입하기

cx_Freeze를 사용하여 생성한 실행 파일에는 추가적인 자원 파일을 포함시킬 수 있습니다. 이를 활용하여 실행 파일에 시간 및 날짜 정보를 삽입할 수 있습니다. 아래 예제 코드는 setup.py 파일에서 include_files에 현재 시간을 저장한 파일을 추가하는 방법을 보여줍니다.

from cx_Freeze import setup, Executable
from datetime import datetime

# 실행 파일에 포함시킬 파일 및 디렉토리
include_files = [
    ('timestamp.txt', 'timestamp.txt')
]

# 현재 시간을 timestamp.txt 파일에 저장
with open('timestamp.txt', 'w') as file:
    file.write(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))

# 실행 파일 생성 옵션 설정
options = {
    'build_exe': {
        'include_files': include_files
    }
}

위 예제 코드에서는 include_filestimestamp.txt 파일을 추가로 포함시키는 것을 볼 수 있습니다. timestamp.txt 파일에는 현재 시간 정보가 저장될 것입니다.

이렇게 생성된 실행 파일은 다른 곳으로 배포할 때 시간 및 날짜 정보가 포함된 timestamp.txt 파일도 함께 포함되어 배포됩니다.

3. 실행 파일에서 시간 및 날짜 정보 읽어오기

생성된 실행 파일에서 시간 및 날짜 정보를 읽어오기 위해서는 timestamp.txt 파일을 읽는 방법을 사용할 수 있습니다. 아래 예제 코드는 실행 파일 내에서 timestamp.txt 파일의 내용을 읽어와 출력하는 예제입니다.

import sys

timestamp_file = 'timestamp.txt'

# 실행 파일 내에 있는 timestamp.txt 파일의 경로 얻기
if getattr(sys, "frozen", False):
    timestamp_file = os.path.join(os.path.dirname(sys.executable), timestamp_file)

# timestamp.txt 파일 읽기
with open(timestamp_file, 'r') as file:
    timestamp = file.read()

print(timestamp)

위 예제 코드에서는 실행 파일 내에 있는 timestamp.txt 파일을 읽기 위해 sys.executable을 사용하여 실행 파일의 경로를 얻어옵니다. 이를 통해 실행 파일에서 timestamp.txt 파일의 경로를 얻을 수 있습니다. 그 후에는 해당 파일을 읽어와서 시간 및 날짜 정보를 사용하거나 출력할 수 있습니다.

4. 마치며

이번 글에서는 cx_Freeze를 사용하여 생성한 실행 파일의 시간 및 날짜 정보를 관리하는 방법에 대해 알아보았습니다. cx_Freeze를 활용하면 파이썬 프로그램을 실행 파일로 변환하여 배포할 수 있으며, 실행 파일에 추가적인 리소스로 시간 및 날짜 정보를 포함시킬 수도 있습니다. 이를 통해 프로그램 버전 관리나 로깅 등에 유용하게 활용할 수 있습니다.