Открыть файл из определенной программы из python

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

Я использую программу под названием 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 ответа

Решение

Это не может работать, так как 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"])

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

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

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

Другие вопросы по тегам