본문 바로가기
에러 해결

os.system() 실행 경로에 띄어쓰기가 있어서 생기는 오류

by Devry 2023. 8. 16.

상황

현재 실행 중인 애플리케이션에서 다른 파일을 실행하는 코드는 자주 쓰이는 편입니다.

평소에 os.system("start 나의앱.exe")과 같은 방식으로 사용하였는데 문제가 발생했습니다.

# 기존에 쓰던 외부 파일을 실행하는 코드
os.system("start 나의앱.exe")

 

원인 분석

타입이나 한글 경로의 문제는 아니었고, 실행하려는 파일의 경로 중에 띄어쓰기가 포함되면 파일을 찾지 못하는 문제였습니다. 예를 들어, "사용 법.txt"라는 파일을 실행할 경우 띄어쓰기의 앞부분 까지만 인식하고 에러 메시지가 뜹니다.

 

 

subprocess.call 방식을 사용하라는 내용이 많았지만 실행 파일만 되는 것 같았고, 큰 따옴표로 감쌌을 땐 텍스트 파일이 cmd로 실행이 되었습니다.

 

 

🔑해결

구글링하고 ChatGPT에 물어봐도 해결이 안되다가 스택오버플로우에 검색한 방법으로 해결했습니다.

file = 'C:\\Exe\\First Version\\filename.exe'
os.system('"' + file + '"')

 

이 방식대로 써줘야 띄어쓰기도 인식이 되고 txt 파일도 실행이 됩니다.

 

 

ChatGPT에 플러그인도 많아지고 웹 접근이 가능해 지는 등 발전 속도가 빠르지만 아직 스택 오버플로우도 버릴 수 없는 것 같네요

 

 

 

댓글