我想用shell命令从它中提取一个变量,我想在我的python程序的其余部分使用它。例如,此代码尝试使用subprocess.call
和os.system
。前者给了我一个错误,而后者不产生任何东西,但如果我在shell命令中不使用变量,两者都可以正常工作。Python不执行使用变量的shell命令
import subprocess
import os
# ...
x="05/May/2017"
print 'Date =',x
subprocess.call(['echo Hello World from method 1'], shell=True)
os.system('echo Hello World from method 2')
print "Month from method 1 ="
subprocess.call(['echo $x | cut -f2 -d/'])
print "Month from method 2 ="
m=os.system('echo $x | cut -f2 -d/')
print m
问题在哪里,我该如何克服这个问题?
'x'是你的python脚本的一个变量。它不是一个环境变量。因此,在shell中执行时,它会失败 – kuro
如何 - 'os.system('echo%s | cut -f2 -d /'%x)'? – kuro
这里没有任何理由需要外部过程。 'month = x.split('/')[1]'。有没有更好的例子可以证明“subprocess.call”的正确使用? – chepner