python - 将 os.popen(command) 读入字符串

标签 python string popen

我不确定我的标题是否正确。 我正在做的是编写一个 python 脚本来自动化我的一些代码编写。 所以我正在解析一个 .h 文件。 但我想在开始之前展开所有宏。 所以我想调用 shell 来:

gcc -E myHeader.h

应该将 myHeader.h 的后期预处理版本输出到标准输出。 现在我想将所有输出直接读入一个字符串以供进一步处理。 我读过我可以用 popen 做到这一点,但我从未使用过管道对象。

我该怎么做?

最佳答案

os.popen 函数只返回一个类似文件的对象。你可以像这样使用它:

import os

process = os.popen('gcc -E myHeader.h')
preprocessed = process.read()
process.close()

正如其他人所说,您应该使用 subprocess.Popen。它被设计成一个 safer version os.popen。 Python 文档有一个 section describing how to switch over .

关于python - 将 os.popen(command) 读入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2339469/

相关文章:

python - 从服务器读取消息并将其存储在文件中并在 Tkinter 中显示

python - 按两列中的值分组并在 Pandas 中进行过滤

将 char 数组元素与字符串文字进行比较

python - 如何在popen子进程中使用 '>>'

python - 选择egg安装的Python版本或安装并行版本的site-package

java - 以高效的方式计算字符串中出现的字符数?‽?

string - Lua模式分离问题

python - 在进程运行时读取进程的输出

python - 为什么此代码在 Python3.1 中的行为与在 Python2.6 中的行为不同?

python - 在 Python 中创建可执行符号链接(symbolic link)?