1
不通過大括號作爲參數在Windows命令行,以下行爲完全如預期:Python的子進程在Windows
C:\> c:\cygwin\bin\printf "<%s>\n" "{foo}"
{foo}
從本機Win32 Python實例中,然而,大括號被剝離:
>>> subprocess.Popen(['c:\\cygwin\\bin\\printf', '<%s>\n', '{foo}'],
... stdout=subprocess.PIPE).communicate()[0].rstrip('\n')
'foo'
這是怎麼回事?
該文檔鏈接到您有一個大粉紅色「自2.7版棄用」框。這就是說,我不確定你在2.7中使用的是什麼(或者在3.0-3.2中,它既沒有這個也沒有'shlex.quote')... – abarnert
這確實有效。也就是說,我對它的工作非常不安 - 'shell = False'使用子進程.Popen畢竟應該避免任何非文字處理參數字符。 –
是的,其相當粗略... –