Открыть файл из определенной программы из python - PullRequest
3 голосов
/ 24 марта 2012

Я хотел бы сделать очень простую вещь, но я совершенно потерян.

Я использую программу под названием Blender и хочу написать скрипт на python, который открывает файл .blend, но использует blender.app, который находится в одной папке с файлом blend, а не с blender.app, который находится в приложениях. (используя Macosx)

Так что я подумал, что это должно сделать работу ... но вместо этого он открывает блендер дважды ...

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")

но, к сожалению, он открывает .blend файл со стандартным blender.app, который находится в приложениях ...

есть идеи?

Ответы [ 2 ]

3 голосов
/ 24 марта 2012

Это не может работать, поскольку команда system выполняется в подоболочке, а chdir действительна только для этой подоболочки.Замените команду на

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

или (намного лучше)

subprocess.check_call(["open", "-a", os.path.join(path, "blender.app"),
                       "Import_mhx.blend"])
1 голос
/ 24 марта 2012

Вы пытались сказать команде open, чтобы открыть ее С определенным приложением?

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

Ваша первая попытка была на правильном пути, но вы действительно говорили open, чтобы просто открыть две разные вещи. Ни одного с другим.

...