python
Python 스크립트 손쉽게 실행하기: 초보자 가이드

Python 스크립트 손쉽게 실행하기: 초보자 가이드

MoeNagy Dev

Python 스크립트 실행하기: 기본 내용

Python 인터프리터 이해하기

Python 인터프리터는 Python 코드를 실행하는 소프트웨어입니다. 인터프리터는 고수준의 Python 코드를 컴퓨터가 이해하고 실행할 수 있는 기계어 명령으로 변환하는 역할을 담당합니다. 인터프리터는 시스템에서 Python 스크립트를 실행할 수 있도록 해주는 핵심 구성 요소입니다.

인터프리터의 위치 찾기

Python 인터프리터의 위치는 운영 체제와 Python 설치 방법에 따라 달라집니다. Windows에서는 인터프리터가 일반적으로 C:\Python[버전] 디렉토리에 위치합니다. [버전]은 설치된 Python의 구체적인 버전을 나타냅니다. macOS와 Linux에서는 인터프리터를 일반적으로 /usr/bin/python 또는 /usr/local/bin/python 디렉토리에서 찾을 수 있습니다.

Python 버전 확인하기

Python 스크립트를 실행하기 전에 올바른 Python 버전이 설치되어 있는지 확인하는 것이 중요합니다. Windows에서는 명령 프롬프트를 열고 다음 명령을 실행하여 시스템에 설치된 Python 버전을 확인할 수 있습니다:

python --version

이 명령은 시스템에 설치된 Python 버전을 Python 3.9.2와 같은 형식으로 표시합니다.

명령 줄에서 Python 스크립트 실행하기

명령 프롬프트/터미널 열기

명령 줄에서 Python 스크립트를 실행하려면 해당 운영 체제에 적절한 명령 프롬프트 또는 터미널을 열어야 합니다:

  • Windows: 시작 메뉴를 열고 "Command Prompt"를 검색하여 실행합니다.
  • macOS/Linux: "Terminal" 애플리케이션을 열어야 하는데, 보통 유틸리티 폴더에 위치하거나 검색하여 찾을 수 있습니다.

스크립트가 있는 디렉토리로 이동하기

명령 프롬프트 또는 터미널을 열었으면 Python 스크립트가 있는 디렉토리로 이동해야 합니다. 이를 위해 cd (change directory) 명령을 사용하여 스크립트의 디렉토리 경로를 지정합니다.

예를 들어, Windows에서 스크립트가 C:\Users\YourUsername\my_script.py에 위치한 경우 다음과 같이 실행합니다:

cd C:\Users\YourUsername

macOS/Linux에서 스크립트가 /home/username/my_script.py에 위치한 경우 다음과 같이 실행합니다:

cd /home/username

Python 스크립트 실행하기

스크립트의 디렉토리로 이동한 후 다음 명령을 사용하여 Python 스크립트를 실행할 수 있습니다:

python my_script.py

이 명령은 Python 인터프리터를 사용하여 my_script.py 파일을 실행합니다.

명령 줄 인수 처리하기

Python 스크립트가 명령 줄 인수를 입력받는 경우 스크립트 이름 뒤에 인수를 추가하여 스크립트로 전달할 수 있습니다. 예를 들어, 스크립트가 두 개의 인수를 입력받는 경우 다음과 같이 실행할 수 있습니다:

python my_script.py arg1 arg2

Python 스크립트 내에서는 sys.argv 리스트를 사용하여 이러한 인수에 접근할 수 있습니다. 이 리스트에는 스크립트 이름 자체를 포함하여 모든 명령 줄 인수가 포함됩니다.

import sys
 
print("스크립트 이름:", sys.argv[0])
print("인수 1:", sys.argv[1])
print("인수 2:", sys.argv[2])

배치/셸 스크립트를 사용한 자동 스크립트 실행

배치 파일 생성하기 (Windows)

Windows에서는 배치 파일(.bat 또는 .cmd 확장자)을 생성하여 Python 스크립트를 자동으로 실행할 수 있습니다. Python 스크립트를 실행하는 배치 파일의 예시입니다:

@echo off
python C:\Users\YourUsername\my_script.py

이 파일을 .bat 또는 .cmd 확장자로 저장한 후에는 파일을 두 번 클릭하거나 명령 프롬프트에서 실행할 수 있습니다.

셸 스크립트 생성하기 (macOS/Linux)

macOS와 Linux에서는 셸 스크립트(.sh 확장자)를 생성하여 Python 스크립트를 자동으로 실행할 수 있습니다. 셸 스크립트의 예시입니다:

#!/bin/bash
python /home/username/my_script.py

다음 명령을 실행하여 스크립트를 실행 가능하도록 설정합니다:

chmod +x /home/username/my_script.sh

그런 다음, 터미널에서 ./my_script.sh를 입력하여 스크립트를 실행할 수 있습니다.

스크립트 실행 일정화하기

운영 체제에 내장된 작업 일정화 도구를 사용하여 Python 스크립트의 실행 일정을 일정화할 수도 있습니다:

  • Windows: 작업 스케줄러를 사용하여 배치 파일이나 Python 스크립트를 특정 시간 또는 간격마다 실행하는 새 작업을 생성합니다.
  • macOS/Linux: cron 유틸리티를 사용하여 셸 스크립트나 Python 스크립트의 실행을 정기적으로 예약합니다.

애플리케이션 내에서 Python 스크립트 통합하기

C/C++ 프로그램 내에서 Python 임베딩하기

C 또는 C++ 애플리케이션 내에서 Python 인터프리터를 임베딩하여 프로그램 내에서 Python 스크립트를 실행할 수 있습니다. 이를 위해 Python/C API를 사용하며, 이는 Python 인터프리터와 상호작용하기 위한 일련의 함수와 매크로를 제공합니다.

다음은 C 프로그램 내에서 Python을 임베딩하는 간단한 예입니다:

#include <Python.h>
 
int main() {
    Py_Initialize();
    PyRun_SimpleString("print('Python 임베디드에서 안녕하세요!')");
    Py_Finalize();
    return 0;
}

이 코드는 Python 인터프리터를 초기화하고 간단한 Python 문을 실행한 다음 인터프리터를 종료합니다.

Java/C# 애플리케이션에서 Python 스크립트 호출하기

Java 또는 C# 애플리케이션에서도 다양한 라이브러리와 프레임워크를 사용하여 Python 스크립트를 호출할 수 있습니다. Java의 경우 jython 라이브러리를 사용하여 Java 프로그램 내에 Python 인터프리터를 임베딩할 수 있습니다. C#의 경우, Python 언어의 .NET 구현을 제공하는 IronPython 라이브러리를 사용할 수 있습니다.

다음은 Jython을 사용하여 Java 애플리케이션 내에서 Python 스크립트를 호출하는 예입니다:

import org.python.util.PythonInterpreter;
 
public class JavaPythonIntegration {
    public static void main(String[] args) {
PythonInterpreter 인터프리터 =PythonInterpreter();
    인터프리터.실행("print('파이썬 스크립트에서 안녕하세요!')");
}
}
 
### Python의 Subprocess 모듈 활용
 
Python의 `subprocess` 모듈을 사용하면 Python 코드 내에서 외부 명령, Python 스크립트 등을 실행할 수 있습니다. 이는 Python 스크립트를 더 큰 응용 프로그램이나 워크플로우에 통합하는 데 유용할 수 있습니다.
 
다음은 `subprocess` 모듈을 사용하여 Python 스크립트를 실행하는 예시입니다:
 
```python
import subprocess
 
subprocess.run(["python", "my_script.py"])

이를 통해 Python 인터프리터를 사용하여 my_script.py 파일을 실행할 수 있습니다.

통합 개발 환경에서 Python 스크립트 실행하기

PyCharm에서 스크립트 실행하기

PyCharm IDE에서는 스크립트 파일을 열고 툴바의 "실행" 버튼을 클릭하거나 Ctrl+Shift+F10 (Windows/Linux) 또는 Cmd+Shift+F10 (macOS)를 눌러 Python 스크립트를 실행할 수 있습니다. PyCharm은 자동으로 Python 인터프리터를 감지하고 스크립트를 실행합니다.

Visual Studio Code에서 스크립트 실행하기

Visual Studio Code (VS Code)는 Python 스크립트 실행에 탁월한 지원을 제공합니다. 스크립트 파일을 열고, "터미널에서 Python 파일 실행" 명령 (명령 팔레트 또는 마우스 오른쪽 클릭 컨텍스트 메뉴를 통해 접근 가능)을 사용하여 통합 터미널에서 스크립트를 실행할 수 있습니다.

Jupyter Notebook에서 스크립트 실행하기

Jupyter Notebook은 웹 기반 인터페이스에서 Python 코드를 작성하고 실행할 수 있는 인터랙티브한 컴퓨팅 환경입니다. Jupyter Notebook에서 Python 스크립트를 실행하려면 스크립트의 내용을 새 코드 셀에 복사하고 Shift+Enter를 눌러 실행할 수 있습니다.

반복문과 이터레이션

반복문은 Python에서 코드 블록을 반복적으로 실행할 수 있게 해주는 기본적인 제어 구조입니다. Python은 for 반복문과 while 반복문 두 가지 주요 유형의 반복문을 제공합니다.

for 반복문

for 반복문은 시퀀스 (리스트, 튜플, 문자열 또는 범위와 같은) 위에서 순회하며 각 요소에 대해 특정 작업을 수행하는 데 사용됩니다. for 반복문의 일반적인 구문은 다음과 같습니다:

for 항목 in 시퀀스:
    # 항목에 대해 작업 수행

다음은 리스트를 반복하고 각 요소를 출력하기 위해 for 반복문을 사용하는 예시입니다:

과일들 = ['사과', '바나나', '체리']
for 과일 in 과일들:
    print(과일)

출력:

사과
바나나
체리

range() 함수를 사용하여 일련의 숫자를 생성하고 순회할 수도 있습니다:

for i in range(5):
    print(i)

출력:

0
1
2
3
4

while 반복문

while 반복문은 특정 조건이 참인 동안 코드 블록을 반복해서 실행하는 데 사용됩니다. while 반복문의 일반적인 구문은 다음과 같습니다:

while 조건:
    # 어떤 작업 수행

다음은 5에서 1까지 카운트 다운하는 while 반복문을 사용하는 예시입니다:

카운트 = 5
while 카운트 > 0:
    print(카운트)
    카운트 -= 1
print("발사!")

출력:

5
4
3
2
1
발사!

중첩된 반복문

다른 반복문 내에서 반복문을 사용할 수도 있으며, 이를 중첩된 반복문이라고 합니다. 두 개 이상의 시퀀스 요소의 모든 조합마다 작업을 수행해야 할 때 유용합니다.

다음은 1부터 3까지의 숫자의 모든 가능한 조합을 출력하기 위해 중첩된 for 반복문을 사용하는 예시입니다:

for i in range(1, 4):
    for j in range(1, 4):
        print(i, j)

출력:

1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3

반복문 제어문

Python은 반복문의 동작을 수정할 수 있는 여러 제어문을 제공합니다:

  • break: 반복문을 즉시 종료하고 반복문 바로 다음에 오는 문장을 실행합니다.
  • continue: 현재 반복의 남은 부분을 건너뛰고, 다음 반복을 실행합니다.
  • pass: 아무 작업도 수행하지 않습니다. 구문적으로는 문장이 필요하지만 실제 작업은 수행하지 않아야 할 때 사용됩니다.

다음은 특정 조건이 충족되었을 때 반복문을 종료하는 break 문을 사용하는 예시입니다:

count = 0
while True:
    print(count)
    count += 1
    if count >= 5:
        break

출력:

0
1
2
3
4

함수

함수는 특정 작업을 수행하는 재사용 가능한 코드 블록입니다. 코드를 구성하고 가독성을 높이며 코드 재사용을 촉진하는 데 도움을 줍니다.

함수 정의

Python에서 함수를 정의하려면 def 키워드를 사용하고, 함수 이름, 괄호 집합 및 콜론을 붙입니다. 함수 본문은 들여쓰기되며, 함수가 호출될 때 실행될 코드를 포함합니다.

다음은 사각형의 면적을 계산하는 간단한 함수의 예시입니다:

def 면적_계산(길이, 너비):
    면적 = 길이 * 너비
    return 면적

함수 호출

함수를 호출하려면 함수 이름 다음에 괄호를 사용합니다. 함수가 인수를 사용하는 경우 괄호 내부에 전달합니다.

결과 = 면적_계산(5, 3)
print(결과)  # 출력: 15

함수 인수

함수는 인수를 0개 이상 가질 수 있습니다. 인수는 어떤 데이터 유형이든 될 수 있으며, 인수에 기본값을 설정하는 것도 가능합니다.

다음은 인사말을 맞이하는 인자를 사용하는 함수의 예시입니다:

def 인사(이름, 인사말="안녕하세요"):
    print(f"{인사말}, {이름}!")
 
인사("Alice")  # 출력: 안녕하세요, Alice!
인사("Bob", "Hi")  # 출력: Hi, Bob!

반환값

함수는 return 문을 사용하여 값을 반환할 수 있습니다. 목록, 사전 또는 사용자 정의 객체와 같은 복잡한 데이터 구조를 포함하여 모든 데이터 유형을 반환할 수 있습니다.

다음은 두 수의 합을 반환하는 함수의 예시입니다:

def 두_수_더하기(a, b):
    return a + b
 
결과 = 두_수_더하기(3, 4)
print(결과)  # 출력: 7

범위와 변수

Python에는 전역(global) 범위와 지역(local) 범위라는 두 가지 주요 범위 유형이 있습니다. 함수 또는 클래스 내에서 정의된 변수는 지역 범위로 취급되며, 함수 또는 클래스 외부에서 정의된 변수는 전역 범위로 취급됩니다. 다음은 전역 변수와 지역 변수의 차이를 보여주는 예제입니다:

global_variable = "I'm global!"
 
def my_function():
    local_variable = "I'm local!"
    print(global_variable)
    print(local_variable)
 
my_function()  # 출력: I'm global! I'm local!
print(global_variable)  # 출력: I'm global!
print(local_variable)  # NameError: name 'local_variable' is not defined

모듈과 패키지

Python에서 모듈과 패키지는 코드를 구성하고 재사용하는 데 사용됩니다.

모듈

모듈은 정의와 문장을 담고 있는 단일 Python 파일입니다. 모듈을 사용하면 코드를 더 작고 관리하기 쉬운 조각으로 분할할 수 있습니다.

간단한 모듈을 만들고 사용하는 예제입니다:

  1. my_module.py라는 파일을 다음 내용으로 만듭니다:
def greet(name):
    print(f"Hello, {name}!")
  1. 새로운 Python 파일을 만들고 my_module 모듈에서 greet 함수를 가져옵니다:
from my_module import greet
 
greet("Alice")  # 출력: Hello, Alice!

패키지

패키지는 디렉토리 구조로 구성된 모듈의 컬렉션입니다. 패키지를 사용하면 관련된 모듈을 그룹화하고 코드에 계층적 네임스페이스를 생성할 수 있습니다.

간단한 패키지를 만들고 사용하는 예제입니다:

  1. 다음 구조로 my_package라는 디렉토리를 만듭니다:

    • my_package/
      • __init__.py
      • utils.py
  2. utils.py 파일에 다음 코드를 추가합니다:

def square(x):
    return x ** 2
  1. __init__.py 파일에 다음 코드를 추가합니다:
from .utils import square
  1. 새로운 Python 파일을 만들고 my_package 패키지에서 square 함수를 가져옵니다:
from my_package import square
 
result = square(5)
print(result)  # 출력: 25

결론

이 튜토리얼에서는 Python의 다음 주요 개념에 대해 알아보았습니다:

  • 반복문과 이터레이션: for 루프, while 루프, 중첩 루프 및 루프 제어문.
  • 함수: 정의, 호출, 인수, 반환 값 및 스코프.
  • 모듈과 패키지: 모듈과 패키지를 만들고 사용하여 코드를 구성하고 재사용하는 방법.

이러한 개념은 더 복잡하고 견고한 Python 응용 프로그램을 구축하는 데 필수적입니다. 얻은 지식을 활용하여 객체 지향 프로그래밍, 파일 처리 및 외부 라이브러리 및 프레임워크와 함께 작업하는 것과 같이 Python 프로그래밍의 더 고급 주제를 탐색해 볼 수 있습니다.

기억하세요, Python 기술을 향상시키는 가장 좋은 방법은 정기적으로 연습하고 배운 내용을 실제 문제에 적용하는 것입니다. 향후 Python 노력에 행운을 빕니다!

MoeNagy Dev