python - 将子进程标准输出流式传输到 jupyter(bash 和 python)
问题描述
我在 python 中运行一些 bash 脚本。为此,我正在使用
import subprocess
cm=['bash','/path/to/mybash.sh','-f','flag_val']
p=subprocess.Popen(cm, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
universal_newlines=True, bufsize=5, close_fds=True)
我的 bash 脚本正在将 stdout 和 stderr 连同所有日志一起写入文件。
我在jupyter中运行它,我想让python在继续之前等待完整的bash脚本完成,但是就像现在一样,就好像它一旦通过p=...
它就简单地继续而不是等待 bash 完成。但是,如果我不保留close_fds=True
,Popen 会一直挂在脚本完成所需的时间之后。
此外,我还想即时查看 jupyter 内部进程的输出,同时还希望将 bash 写入 stdout 和 stderr。
你认为我能做些什么来解决这些问题?
解决方案
推荐阅读
- python - Amazon Web Services (AWS) Lambda 是否支持所有 Python 库?
- database - 聚合存储在 ElasticSearch 中的 Jenkins 构建日志
- python - Python xpath 从表中获取文本
- ios - 我需要帮助来填充 UICollectionview
- c# - 移动预制件、Unity Spawner、移动位置
- javascript - 在 React Component 与“ref”中调用“document.getElementByID”
- python - QuTiP:解决不一致的 Qobj 形状
- javascript - 如何正确同时使用 searchFile 和 searchFolder?- 应用脚本
- ios - iPad 应用程序未使用全屏
- mongodb - 如何让 mongodb-compass 的多个实例并行运行