너도 할 수 있는, 너도밤나무 코딩

[Python] 파이썬에서 CMD 명령어 결과를 텍스트 파일로 저장하는 방법 본문

프로그래밍 언어/파이썬

[Python] 파이썬에서 CMD 명령어 결과를 텍스트 파일로 저장하는 방법

곡마일장 2025. 9. 21. 14:12
반응형

윈도우 환경에서 작업하다 보면 **CMD(명령 프롬프트)**에서 실행한 결과를 로그로 남기거나, 분석을 위해 파일로 저장하고 싶은 경우가 자주 있습니다. 특히 서버 관리, 로그 추출, 배치 작업 자동화 등에서는 "명령어 실행 결과를 텍스트 파일에 기록"하는 과정이 필수적입니다.

이번 포스팅에서는 파이썬을 활용하여 CMD 명령어를 실행하고, 그 결과를 텍스트 파일로 저장하는 방법을 단계별로 정리하겠습니다. 단순한 예제부터 실무 적용 팁까지 다뤄보니 끝까지 읽어보시면 도움이 될 것입니다.


1. 왜 파이썬으로 CMD 명령어를 실행할까?

물론 Windows CMD 자체에서도 > 리다이렉션 기호를 이용하면 결과를 저장할 수 있습니다.

# CMD에서 직접 실행 예시
dir > result.txt

하지만 파이썬을 이용하면 단순히 저장하는 수준을 넘어:

  • 여러 명령어를 반복 실행할 수 있고,
  • 결과를 가공하거나 분석할 수 있으며,
  • 자동화 스크립트에 다양한 로직을 추가할 수 있습니다.

즉, 파이썬을 이용하면 단순 로깅이 아니라, 강력한 자동화 파이프라인을 구축할 수 있다는 점에서 큰 장점이 있습니다.


2. subprocess 모듈 소개

파이썬에서는 subprocess 모듈을 사용해 외부 프로그램이나 CMD 명령어를 실행할 수 있습니다. 이 모듈은 Python 3.5 이후 subprocess.run() 함수 중심으로 쓰이며, 결과를 쉽게 캡처할 수 있습니다.

기본 사용 예시

import subprocess

result = subprocess.run("dir", shell=True, capture_output=True, text=True)
print(result.stdout)

위 코드를 실행하면 CMD에서 dir 명령을 실행하고, 그 결과가 파이썬 콘솔에 출력됩니다.

  • shell=True : 명령어를 셸(CMD)에서 실행하도록 설정
  • capture_output=True : 표준 출력(stdout)과 표준 에러(stderr)를 캡처
  • text=True : 바이트가 아닌 문자열로 결과 반환

3. 결과를 텍스트 파일로 저장하기

이제 실행 결과를 파일에 저장하는 코드를 작성해봅시다.

import subprocess

# 실행할 명령어
cmd = "ipconfig /all"

# 명령어 실행 및 결과 캡처
result = subprocess.run(cmd, shell=True, capture_output=True, text=True)

# 결과를 텍스트 파일에 저장
with open("cmd_result.txt", "w", encoding="utf-8") as f:
    f.write(result.stdout)

실행 결과

위 코드를 실행하면 ipconfig /all의 결과가 현재 파이썬 스크립트 실행 디렉터리에 cmd_result.txt라는 파일로 저장됩니다.


4. 여러 명령어 반복 실행 후 저장하기

여러 명령어를 자동으로 실행하고 각각의 결과를 저장하고 싶을 수도 있습니다. 이 경우 반복문을 활용하면 좋습니다.

import subprocess

# 실행할 명령어 리스트
commands = [
    "dir",
    "ipconfig /all",
    "tasklist"
]

for i, cmd in enumerate(commands, start=1):
    result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
    filename = f"result_{i}.txt"
    with open(filename, "w", encoding="utf-8") as f:
        f.write(result.stdout)
    print(f"{cmd} 결과가 {filename} 파일에 저장되었습니다.")

위 코드를 실행하면 dir, ipconfig /all, tasklist 결과가 각각 result_1.txt, result_2.txt, result_3.txt로 저장됩니다.


5. 실무 활용 팁

  1. 로그 누적 저장하기
    • 매번 덮어쓰는 대신 "a" 모드로 열면 결과가 누적 기록됩니다.
    with open("log.txt", "a", encoding="utf-8") as f:
        f.write(result.stdout + "\n")
    
  2. 시간 정보 함께 기록하기
    • 실행 시각을 기록해두면 추후 분석에 유용합니다.
    from datetime import datetime
    timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    f.write(f"[{timestamp}]\n{result.stdout}\n")
    
  3. 에러 로그 분리
    • result.stderr를 이용하면 에러 메시지를 별도로 저장할 수 있습니다.
  4. 실행 경로 변경
    • 특정 디렉터리에서 명령어를 실행하고 싶다면 cwd 인자를 활용합니다.
    result = subprocess.run("dir", shell=True, capture_output=True, text=True, cwd=r"C:\Windows")
    

6. 정리

이번 글에서는 파이썬을 활용해 CMD 명령어 실행 결과를 텍스트 파일로 저장하는 방법을 살펴봤습니다.

  • subprocess.run()을 활용하면 외부 명령 실행과 결과 캡처가 가능하다.
  • stdout을 파일로 저장하면 로그 아카이빙 및 후처리 작업이 쉽다.
  • 반복 실행, 시간 기록, 에러 분리 등 확장 기능을 통해 실무 활용도를 높일 수 있다.

이 방식은 단순한 로그 저장을 넘어서, 자동화 스크립트 작성운영 관리 효율화에 큰 도움이 됩니다. 특히 DevOps, 서버 관리, 데이터 수집 자동화 업무에 유용하게 쓰일 수 있으니 꼭 익혀두시길 추천드립니다.


읽어주셔서 감사합니다.

 

SEO 키워드
파이썬 CMD 결과 저장, Python subprocess run 예제, 파이썬 명령어 실행 결과 텍스트 저장, Windows CMD 로그 저장 방법, 파이썬 외부 명령 실행, subprocess.run 사용법, 파이썬 로그 파일 저장, Python CMD output to file, 파이썬 자동화 스크립트, CMD 명령어 결과 파일 저장
반응형