0
桑達我從shell中運行的工作是:與Python/subprocess.call桑達:我怎樣才能使Python執行該調用sed的
sed -re 's/(::\s+ni\s+=)[^=]*$/\1 512/' test.dat
但是,我不能讓它使用Python的子進程運行。撥打:
我有以下幾點:
infile = 'test.dat'
cmd= [
"sed",
"-re",
"s/(::\s+ni\s+=)[^=]*$/\1 512/",
infile
]
subprocess.call(cmd, stdout=open('out_test.dat','w'))
我試過很多不同的方式,但我總是得到一個非零退出狀態。
是不是因爲你的正則表達式應該包含雙引號單引號,即'「的/(:: \ S + NI \ s + =)[^ = ] * $/\ 1 512 /'「'? – wflynny
你需要逃避你的斜槓。 –
爲什麼不使用Python的內置正則表達式替換功能? – tripleee