2012-03-23 4 views
3

아주 간단한 일을하고 싶습니다만, 저는 아주 길어요.특정 프로그램의 파일을 파이썬에서 엽니 다.

저는 블렌더라는 프로그램을 사용하고 있습니다. 블렌더 파일을 열지 만 블렌더 파일과 같은 폴더에있는 blender.app를 사용하여 blender.app가 아닌 스크립트를 파이썬으로 작성하고 싶습니다. 응용 프로그램에 있습니다.

import os 

path = os.getcwd() 
print(path) 
os.system("cd path/") 
os.system("open blender.app Import_mhx.blend") 

나 또한 노력이 하나

import os 

path = os.getcwd() 
print(path) 
os.system("cd path/") 
os.system("open Import_mhx.blend") 

하지만 ... 난이 일을해야한다고 생각했다 ...하지만 대신은 믹서기에 두 번 열립니다 그래서

(에서라도 사용) 불행히도 그것은 응용 프로그램에있는 기본 blender.app와 블렌드 파일을 엽니 다 ...

어떤 아이디어?

+0

실제로 cd'ing하고하여 명령을 교체, 이것은 오타인가? –

+0

@agf 글쎄, 이걸로 시도했지만 여전히 두 개의 블렌더를 엽니 다. –

답변

3

system 명령이 서브 쉘에서 실행되고 chdir이 해당 서브 쉘에서만 유효하기 때문에이 방법은 작동하지 않습니다. 현재 디렉토리 안에`path`라는 폴더에 (더 나은)

os.system("open -a path/blender.app Import_mhx.blend") 

또는

subprocess.check_call(["open", "-a", os.path.join(path, "blender.app"), 
         "Import_mhx.blend"]) 
+0

하위 프로세스! –

1

open 명령을 사용하여 특정 응용 프로그램으로 열어 보았습니까?

open -a /path/to/blender.app /path/to/Import_mhx.blend

의 첫 번째 시도는 바른 길에 있었다 그러나 당신은 정말 open을 열어 다른 두 가지를 이야기했다. 다른 하나와.

+0

글쎄, 당신이 제안한 것은 작동하지 않았어 ... 네 말이 맞아. 그것은 두 가지 다른 것들을 열지 만 둘 다 비 웁니다! –

+0

잠깐, 내 대답이 효과가 없다고 말하는거야? – jdi

+0

여전히 두 개의 다른 블렌더를 엽니 다. –

관련 문제