如何使用子進程運行此命令?Python - 子進程 - 如何在Windows中調用管道命令?
我想:
proc = subprocess.Popen(
'''ECHO bosco|"C:\Program Files\GNU\GnuPG\gpg.exe" --batch --passphrase-fd 0 --output "c:\docume~1\usi\locals~1\temp\tmptlbxka.txt" --decrypt "test.txt.gpg"''',
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
)
stdout_value, stderr_value = proc.communicate()
,但得到:
Traceback (most recent call last):
...
File "C:\Python24\lib\subprocess.py", line 542, in __init__
errread, errwrite)
File "C:\Python24\lib\subprocess.py", line 706, in _execute_child
startupinfo)
WindowsError: [Errno 2] The system cannot find the file specified
事情我已經注意到:
- 在Windows 控制檯工作正常運行的命令。
- 如果我刪除 ECHO bosco |部分,它運行良好 上面的popen電話。所以我認爲 這個問題與echo或 |有關。
請問,當你在Windows控制檯運行全線實際工作? WindowsError表明這個問題不是你的Python代碼,而是要執行的實際命令。 – 2009-06-25 22:10:14
是的,它從Windows dos控制檯運行。 – Greg 2009-06-25 22:15:13