我不确定我的标题是否正确。 我正在做的是编写一个 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/