2014-04-30 5 views
1

파이썬 코드를 작성할 때 os.system('some cmd command')을 쓸 수 있습니다. 'cd'명령을 사용하지 않고 특정 디렉토리에서 어떻게 실행시킬 수 있습니까?특정 디렉토리에서 Python으로 cmd 명령 실행하기

내 cmd 명령이 내 cmd PATH에 없으므로이 작업을 수행하려고하는 이유는 자체 디렉터리에서만 인식되기 때문입니다. 나는이 비슷한 찾고 있어요

:

p = Popen ('file.bat', cwd = 'location') 
stdout, stderr = p.communicate() 

단지에 대한 .bat 파일을 생성하지 않고 ...

+0

변수에 abs 경로를 지정하고 인수로 전달 하시겠습니까? 그게 당신이하려고하는 것이 확실하지 않습니다. – crownedzero

+0

미안 @crownedzero, 나는 당신의 의견을 정말로 이해하지 못했습니다. Abs 경로 란 무엇이며 인수로 전달해야하는 위치는 어디입니까? – Cheshie

답변

2

당신은 항상 할 수있는 :

p = Popen ('../relative/path/to/executable.exe') 
stdout, stderr = p.communicate() 

또는 거기에 절대 경로를 하드 코딩 할 수 있지만 파일이 먼저 존재하는지 확인하거나 popen 호출에 의해 throw 된 예외를 잡으십시오 (더 많은 pythoni 기음).

LE : 거기 Popen의 생성자에 cwd 매개 변수이지만, 실행 된 프로그램의 현재 디렉토리가 변경됩니다 있습니다, 거기에 실행 파일을 찾지 않습니다.

+0

나는 이것을하려고했지만 그들이하려고했던 것이 그게 확실하지 않았다. ( – crownedzero

+0

음, 나는 박쥐 파일을 사용하고 싶지 않다고 말했다 ... – Cheshie

+0

@Cheshie 네, 물론 거기에 있습니다. 당신이 원하는 모든 경로를 쓸 수 있습니다. 박쥐 파일이 아니라 그냥 시도해보십시오. LE : 게시물을 편집했습니다. – Paul