0
當我執行腳本我得到這個錯誤:如何使外殼瞭解到,正在通過subprocess.call通過通配符()
['grep', 'PORTALSHARED', '*']
grep: *: No such file or directory
同樣的命令,當我執行上工作得很好貝殼。
下面是腳本:
a = shlex.split('grep PORTALSHARED *')
print a
for pdir, _, _ in os.walk(r'/Users/skandasa/perforce/projects/releases/portal-7651'):
os.chdir(pdir)
print os.getcwd()
subprocess.call(a)
我曾嘗試加入shell = True
但沒有奏效。
你確定你要發送的完整的字符串,而不是分裂的版本,因爲我有在答覆中說。 –
我很抱歉,評論是其他答案。我認爲你的解決方案似乎很有用,因爲它需要一些時間來獲得結果。順便說一下,請允許我告訴我如何通過'grep PORTALSHARED * | awk -F'[''{print $ 1}'''命令通過'subprocess'作爲'shlex.split'只做這個'['grep','PORTALSHARED','*','|','awk',' -F','[','{print $ 1}']'子進程需要每個項目用單引號引起來。 –
您不能在shell = True的情況下使用'shlex.split()'。所以不要分割,直接使用字符串,使用'雙引號'來創建字符串,而不是單引號。就像''grep PORTALSHARED * | awk -F'[''{print $ 1}'「' –