我想用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