8

在以下代码中,我构造了一个变量 $probe1,然后将其传递给 bash 脚本。在下面的玩具示例中,输出为空白,即 $probe1 无法识别 os.system 调用中的 bash shell 脚本。需要做什么?

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')
4

2 回答 2

10

似乎这就是你想要做的:

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

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

但我不知道你为什么要这样做......

于 2012-12-19T01:14:01.743 回答
4
os.system('echo {0}'.format(probe1))

probe1 是一个 python 变量,而不是一个 shell 变量。

os.environ['probe1'] = probe1

将 bash 环境变量设置为 python 变量内容。但是,一旦 python 脚本退出,环境变量就会消失。

于 2012-12-19T01:09:30.187 回答