python - 在 Python 脚本中运行带有 "live"输出的 bash 脚本?

标签 python shell

我想知道是否可以在 Python 脚本中运行 bash 脚本并使 bash 脚本输出“实时”(不是在 Python 脚本运行 bash 脚本之后,我知道该怎么做)。

您可能会问我为什么要使用 Python 脚本:实际上我想构建一个漂亮的 CLI 界面,并且我正在使用 Inquirer 来做到这一点。该界面允许用户执行实际使用 bash 脚本执行的任务。这就是我不使用执行其他脚本的 bash 脚本的原因。

最佳答案

您可以使用以下实现来实时获取shell脚本的STDOUT。

代码:

cmd="whoami"
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, bufsize=1)
for line in iter(p.stdout.readline, b''):
    print(line)
p.stdout.close()
p.wait()

输出:

>>> python3 test.py 
b'milanbalazs\n'

关于python - 在 Python 脚本中运行带有 "live"输出的 bash 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57955127/

相关文章:

mongodb - 引用错误 : require is not defined in MongoDB shell

linux - Bash 输出流写入文件

python - 读取 Pandas Dataframe 中的列值

python - 如何 reshape 数据框(列中的不同类型)

python - 使用 timeit 对不同的测试语句运行一次设置代码

c - 执行不工作

shell - 并行执行多个子Shell脚本的错误处理

python - 如何在 python 中使用列表理解从列表中获取元组

python - 在 Python 中验证 ISO-8601 日期时间字符串?

json - 将键和值从 jq 传递给外部命令