gpt4 book ai didi

python - 从 python 与 bash 交互

转载 作者:太空狗 更新时间:2023-10-29 17:15:48 25 4
gpt4 key购买 nike

我一直在玩弄 Python 的 subprocess 模块,我想用 python 的 bash 做一个“交互式 session ”。我希望能够像在终端仿真器上一样从 Python 读取 bash 输出/写入命令。我想一个代码示例可以更好地解释它:

>>> proc = subprocess.Popen(['/bin/bash'])
>>> proc.communicate()
('user@machine:~/','')
>>> proc.communicate('ls\n')
('file1 file2 file3','')

(显然,它不能那样工作。)这样的事情可能吗?如何实现?

非常感谢

最佳答案

试试这个例子:

import subprocess

proc = subprocess.Popen(['/bin/bash'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
stdout = proc.communicate('ls -lash')

print stdout

你必须阅读更多关于 stdin、stdout 和 stderr 的内容。这看起来不错的讲座:http://www.doughellmann.com/PyMOTW/subprocess/

编辑:

另一个例子:

>>> process = subprocess.Popen(['/bin/bash'], shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
>>> process.stdin.write('echo it works!\n')
>>> process.stdout.readline()
'it works!\n'
>>> process.stdin.write('date\n')
>>> process.stdout.readline()
'wto, 13 mar 2012, 17:25:35 CET\n'
>>>

关于python - 从 python 与 bash 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9673730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com