python - 从 Python 调用命令行实用程序

标签 python terminal debian strace

我目前正在尝试利用 strace 自动跟踪程序的系统调用。然后解析和处理获得的数据,我想使用 Python 脚本。

我现在想知道,我将如何从 Python 调用 strace? Strace 通常通过命令行调用,我不知道从 strace 编译的任何 C 库我可以使用。

通过 Python 通过命令行模拟访问的一般方法是什么? 或者:是否有任何类似于 strace 的工具是用 Python 原生编写的?

我感谢任何形式的帮助。

没有,因为我很笨

最佳答案

您需要使用subprocess 模块。

它有 check_output 来读取输出并将其放入变量中,还有 check_call 来检查退出代码。

如果你想运行一个 shell 脚本,你可以将它全部写在一个字符串中并设置 shell=True,否则只需将参数作为字符串放在一个列表中。

import subprocess
# Single process
subprocess.check_output(['fortune', '-m', 'ciao'])
# Run it in a shell
subprocess.check_output('fortune | grep a', shell=True)

请记住,如果您在 shell 中运行东西,如果您没有正确转义并允许用户数据进入您的字符串,则很容易出现安全漏洞。最好不要使用 shell=True

关于python - 从 Python 调用命令行实用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53988715/

相关文章:

python - 如何使用 seaborn displot 将直方图条围绕刻度线居中?堆叠杆是必不可少的

javascript - Node process.stdin 需要多次按键才能以原始模式发出数据

debian - apt 偏好引脚 : origin local?

file - 如何让 Debian 将数据文件视为文本?

python - 如何解决 python 中的总线错误(核心转储)?

Python mysql 连接器返回元组

C 避免光标定位在按键上

linux - 最轻量级的 Linux 内核操作系统

Python程序随机挂起

python - 将选定的文本发送到命令行参数