2016-07-12 4 views
0

파이썬을 사용하여 응용 프로그램을 열려고합니다. 지금이 순간,이 내가 가지고 무엇을 :응용 프로그램 이름에 공백이 있으면 Python으로 응용 프로그램을 열 수 없습니다.

os.system("open " + "/Applications/" + app + ".app") 

('응용 프로그램'은 APPNAME있는 문자열입니다 스크립트 전반에 걸쳐 변경)

이제

, 내 문제는 내가하려고 할 때이 완벽하게 작동한다는 것입니다 그들의 이름에 대해 한 단어로 앱을 엽니 다. '블렌더'또는 '대괄호'와 같습니다. 그러나 Photoshop (응용 프로그램 폴더의 이름이 "Adobe Photoshop CS6"인 Photoshop)을 열려고하면 아무 일도 일어나지 않습니다. 나는 몇 시간 동안 노력 해왔다. 많은 질문을했고, 많은 사람들은 문자열 앞에 'r'을 추가하는 것에 대해 이야기했다. 나는 문자열의 모든 부분 앞에서 이것을 시도했지만 따옴표 사이에 모든 것을 캡슐화하려고했지만 아무 도움이되지 않았습니다.

왜 이런 문제가 있습니까?

os.system("open " + "'/Applications/" + app + ".app'") 
        ^       ^

는 그래서로 확장 :

open '/Application/Hello World.app' 

당신은 아마 어쨌든 subprocess.call()를 사용한다, 배열 요소에서 인수를 받아 고생하지 않습니다

+0

정말 쉘 명령을 실행하고 있습니다. 쉘에서 '오픈 어도비 포토샵 CS6.app'이 의미하는 바를 3 가지 별도의 인수로 생각해보십시오. 적어도 셸 구문을 인용/이스케이프해야합니다.'열린 'Adobe Photoshop CS6.app''. – deceze

+0

그런데, 쉘을 통과하는 것보다 파이썬에서 이것을하는 더 좋은 방법이 있어야한다고했습니다. – deceze

답변

1

.app 비트 따옴표를 추가 이 문제.

+0

Droppy, 사랑해. <3 – Colobri