Моя проблема в том, что я хочу выполнить файл Python с аргументом из другого файла Python для получения возвращаемых значений ....
Я не знаю, хорошо ли я это объяснил...
пример:
из оболочки Я выполняю это:
getCameras.py "path_to_the_scene"
и это возвращает мне список камер ....
так как я могу вызвать этот сценарий (включая аргумент) из другого сценария ???
Я пытался выяснить это сам, прочитав некоторые другие вопросы здесь, но у меня это не получилосья должен использовать функцию execfile () ??как именно ??
Заранее спасибо за помощь новичку, как я !!
Хорошо, после того, как взгляну на ваши ответы, я должен отредактировать свой вопрос, чтобы сделать его более лаконичным и потому чтоЯ не понимаю некоторые ответы (извините, как я уже сказал, что я новичок !!!):
Ну, у меня есть 2 скрипта "getMayaCameras.py" и "doRender.py" и еще один"renderUI.py", который реализует первые 2 сценария в графическом интерфейсе.
"getMayaCameras.py" и "doRender.py" - оба сценария, которые можно выполнить непосредственно из системной оболочки, добавив аргумент (или flags, в случае с «doRender.py») и, если это возможно, я хочу сохранить эту возможность, чтобы я мог выбирать между выполнением пользовательского интерфейса или непосредственным выполнением сценария из оболочки
I 'Мы уже внесли некоторые изменения, чтобы они работали, импортировав их из скрипта renderUI.py, но теперь они не работают сами по себе ....
Так что возможно, чтобы эти скрипты работали сами ивсе еще есть возможностьвызывать их из другого скрипта?как именно?Это "отделение логики от обработки аргументов командной строки" , о котором вы мне говорили ранее, звучит хорошо для меня, но я не знаю, как реализовать это в моем сценарии (я пытался, но безуспешно) ....
Вот почему я публикую здесь исходный код, чтобы вы могли увидеть, как я его сделал, не стесняйтесь и критиковать, и / или исправлять код, чтобы объяснить мне, как я должен сделать его для сценария, чтобыработать правильно ...
#!/usr/bin/env python
import re,sys
if len(sys.argv) != 2:
print 'usage : getMayaCameras.py <path_to_originFile> \nYou must specify the path to the origin file as the first arg'
sys.exit(1)
def getMayaCameras(filename = sys.argv[1]):
try:
openedFile = open(filename, 'r')
except Exception:
print "This file doesn't exist or can't be read from"
import sys
sys.exit(1)
cameras = []
for line in openedFile:
cameraPattern = re.compile("createNode camera")
cameraTest = cameraPattern.search(line)
if cameraTest:
cameraNamePattern = re.compile("-p[\s]+\"(.+)\"")
cameraNameTest = cameraNamePattern.search(line)
name = cameraNameTest.group(1)
cameras.append(name)
openedFile.close()
return cameras
getMayaCameras()
Еще раз спасибо,
Дэвид