il mio problema è che voglio eseguire un file python con un argomento da dentro un altro file python per ottenere i valori restituiti ....come eseguire un file di script python con un argomento da all'interno di un altro file di script python
non so se ho spiegato bene ...
esempio:
dal guscio eseguo questo:
getCameras.py "path_to_the_scene"
e questo mi restituiscono un elenco di telecamere .. ..
così come posso chiamare questo script (compreso l'argomento) da un altro script ???
Ho cercato di capire da solo leggendo alcune altre domande qui, ma non ho capito bene, dovrei usare la funzione execfile() ?? come esattamente ??
Grazie in anticipo per aiutare un principiante come me !!
Ok, dopo dare un'occhiata alle tue risposte, devo modificare la mia domanda per renderla più concisa e perché non capisco alcune risposte (scusa, come ho detto che sono un novizio !!!):
Bene, ho questo 2 script "getMayaCameras.py" e "doRender.py" e uno più chiamato "renderUI.py" che implementa i primi 2 script in una GUI.
"getMayaCameras.py" e "doRender.py" sono entrambi scips che è possibile eseguire direttamente dalla shell di sistema aggiungendo un argomento (o flag, nel caso "doRender.py") e, Se è possibile , Voglio ancora avere questa possibilità così posso scegliere tra eseguire l'interfaccia utente o eseguire lo script direttamente dalla shell
Ho già apportato alcune modifiche per farli funzionare importandoli dallo script "renderUI.py" ma ora non lavorano da soli ....
Quindi è possibile avere questi script che lavorano da soli e che hanno ancora la possibilità di chiamarli da un altro script? esattamente? Questo "separando la logica dall'argomento della riga di comando che gestisce" che mi hai detto prima mi suona bene ma non so come implementarlo sul mio script (ho provato ma senza successo) ....
Ecco perché sto postando qui il codice originale per voi per vedere come l'ho realizzato, sentitevi liberi sia di fare critiche e/o correggere il codice per spiegarmi come dovrei farlo affinché lo script funzioni correttamente ...
ancora#!/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()
Grazie,
David
Io non lo capisco molto bene, in questo modo sei ancora in grado di chiamare lo script con args dalla shell? ... comunque ho provato a implementarlo nella mia sceneggiatura senza successo, per favore puoi farlo con la sceneggiatura che ho lasciato qui, quindi posso usarlo come esempio? – user497457
non funziona ... – user1701047