我目前正在尝试利用 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/