passer des variables de python à bash shell script via os.système

dans le code suivant, je construis une variable $probe1 que je veux ensuite passer à un script bash. I l'exemple de jouet ci-dessous, la sortie est vide, i.e. $probe1 n'est pas reconnu le script shell bash dans le système d'exploitation.système d'appel. Ce qui doit être fait?

for line1 in datfile:
    datmat=datmat+[line1.rstrip('n').split('t')]
        probe=datmat[i][0]
        snp1=datmat[i][2]
    probe1='permprobes'+probe+'pheno.pphe'
    os.system('echo $probe1')
8
demandé sur user1815498 2012-12-19 05:06:58

2 réponses

Semble que c'est ce que vous essayez de faire:

In [2]: os.environ['probe1'] = 'hello'

In [3]: os.system('echo $probe1')
hello

Mais je n'ai aucune idée de pourquoi vous voulez faire cela ...

10
répondu satoru 2012-12-19 01:14:01
os.system('echo {0}'.format(probe1))

probe1 est une variable python, pas une variable shell.

os.environ['probe1'] = probe1

définira la variable d'environnement bash au contenu de la variable python. Une fois le script python terminé, la variable d'environnement disparaît.

4
répondu jgritty 2012-12-19 01:23:14