有没有办法在Python中拦截对二进制文件的C函数调用(例如:写入文件)?
我需要在python上执行Linux上的二进制文件并捕获它写入日志文件的输出。日志文件名是不可预测的。
答案 0 :(得分:2)
要做的就是创建一个命名管道。如果logfile
是日志文件的名称:
import os
import subprocess
LOGFILE = 'somefile.log'
if not os.path.exists(LOGFILE):
os.mkfifo(LOGFILE)
proc = subprocess.Popen([YOUR_PROGRAM])
with open(LOGFILE) as log:
data = log.read() # process your data
proc.wait()