Usando o Python para abrir um ambiente shell, execute um ambiente de comando e saída

Estou tentando automatizar um processo usando python. Se eu estiver no terminal, o fluxo de trabalho será semelhante a:

user:> . /path/to/env1.sh
user:> python something.py
user:> exit
user:> . /path/to/env2.sh
user:> python something2.py
user:> exit 

etc para mais algumas etapas. Cadaenv.sh gera um novo script com várias variáveis de ambiente e outras coisas definidas no diretório atual. Tenho certeza de que preciso usar o subprocesso, mas não sei exatamente como fazê-lo. Idealmente, o fluxo de trabalho seria: abra um novo shell -> execute alguns comandos -> saia do shell -> repita conforme necessário.

EDIT: Parece que é necessário algum esclarecimento. Eu entendo como usarsubprocess.Popen() esubprocess.call() chamar coisas de dentro do shell de onde o script Python foi chamado. Não é disso que eu preciso. Quando alguém chamaenv.sh ele define uma tonelada de variáveis de ambiente e algumas outras coisas pertinentes e, em seguida, coloca você em um shell para executar comandos. É importante notarenv.sh não termina até que um digiteexit depois de executar os comandos desejados. Usandosubprocess.call("./env.sh", shell = True) abre a concha e pára por aí. É como digitar o comando./env.sh exceto que quando se emite oexit comando, o restante do script python. Assim:

subprocess.call(". /path/to/env.sh", shell = True)
subprocess.call("python something.py", shell = True)

NÃO faz o que eu preciso, nem faz:

p = subprocess.Popen(". /path/to/env.sh", shell = True)
subprocess.call("python something.py", shell = True)
p.kill()

questionAnswers(5)

yourAnswerToTheQuestion