파이썬으로 프로그램을 실행하는데 path 중간에 공백이있어서 오류가 뜹니다


발생하는 문제 및 실행환경

파이썬으로 프로그램을 실행하는데 path 중간에 공백이있어서 오류가 뜹니다

소스코드

import os;
os.system("C:\\Temp\\a b c\\Notepad.exe"); #Notepad.exe는 제가 직접만든 exe
raw_input();

에러내용

'C:\Temp\a' is not recognized as an internal or external command, operable program or batch file.

다른 따옴표로 감싸주면 실행되긴 하는데, 이러면 파라미터를 쓸 때 에러가 뜹니다

소스코드

import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe" "C:\\test.txt"');
raw_input();

path이름을 바꾸면 다른 관련된 것도 많이 바꿔야되서 path는 가능하면 그냥 두려고 합니다. 어떻게 하면 path를 유지하면서 파라미터도 같이 넘겨줄수 있을까요?


조회수 258


1 답변


좋아요
0
싫어요
채택취소하기

해당 문제는 os.system대신 subprocess.call을 써야 할 것 같습니다.

스트링이 아니라 리스트를 인자로 받고, 콤마(,)를 써서 인자를 구분하기때문에 공백을 별로 신경쓸 필요가 없습니다

import subprocess
subprocess.call(['C:\\Temp\\a b c\\Notepad.exe', 'C:\\test.txt'])
  • 2016년 02월 11일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close