from mitmproxy import http from mitmproxy.tools.main import mitmdump # t = True class AddHeader: def __init__(self): self.num = 0 self.file = open("./request_headers.txt", "w") # 打开文件对象 def request(self, flow: http.HTTPFlow) -> None: # global t self.num += 1 # flow.request.headers["My-Header"] = f"Request {self.num}" # print("Request Headers:") # for name, value in flow.request.headers.items(): # print(f"{name}: {value}") # 保存请求头部内容和请求URL到文件 if "https://cloud.keytop.cn/service/front/userCenter/lpn/list?_=" in flow.request.pretty_url: # t = False self.file.write(f"URL: {flow.request.pretty_url}\n") for name, value in flow.request.headers.items(): self.file.write(f"{name}: {value}\n") self.file.write("\n") self.file.flush() # 立即写入文件 exit() # def response(self, flow: http.HTTPFlow) -> None: # self.num += 1 # flow.response.headers["My-Header"] = f"Response {self.num}" # print("Response Headers:") # for name, value in flow.response.headers.items(): # print(f"{name}: {value}") def done(self): self.file.close() # 关闭文件对象 addons = [ AddHeader() ] if __name__ == "__main__": mitmdump(['-p', '8081', '-s', __file__]) t.py内容如上,如何在另一个python程序中调用t.py让其在后台运行,然后继续执行代码
时间: 2024-04-05 08:35:17 浏览: 214
解决H5py的DLL问题:from . import h5 as _h5
3星 · 编辑精心推荐
可以使用`subprocess.Popen()`函数来在后台运行`t.py`文件。以下是一个示例代码:
```python
import subprocess
# 后台运行t.py文件
p = subprocess.Popen(['mitmdump', '-p', '8081', '-s', 't.py'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# 继续执行代码
print('t.py文件已在后台运行')
# 获取t.py文件的输出
output, error = p.communicate()
print(output.decode())
```
其中,`subprocess.PIPE`参数用于捕获`t.py`文件的输出,`p.communicate()`函数用于等待`t.py`文件运行结束并获取输出。注意,使用`Popen()`函数时,需要指定`stdout=subprocess.PIPE`和`stderr=subprocess.PIPE`参数,否则程序会阻塞在`Popen()`函数处,直到`t.py`文件运行结束。
阅读全文