作爲一個例子,這裏就是我試過:從python3腳本中,如何將一個字符串輸入到bash程序中?
#!/usr/bin/env python3
from subprocess import Popen
message = "Lo! I am up on an ox."
Popen('less', shell=True).communicate(input=message)
隨着最後一行,我也試過:
Popen('less', stdin=message, shell=True)
我能做什麼,我想:
Popen('echo "%s" | less' % message, shell=True)
有沒有更pythonic的做法呢?
謝謝!
這裏你不需要'p.stdin.write()'。如果OPs語言環境使用不同的編碼,則'utf-8'錯誤。我沒有看到在問題中重定向stdout的要求。在針對初學者的答案中不要使用'shell = True'。 OP可能不知道'shell = True'不是必需的,甚至是有害的,但回答子進程問題的人應該知道更好的 – jfs 2015-04-03 18:40:07