我正在使用 crate 提供的 Python 解释器的 Rust 绑定pyo3
。
我有以下代码:
fn run(script: &str) {
Python::with_gil(|py| py.run(script, None, None)).unwrap();
}
fn main() {
run("print('abc')");
}
我希望script
从我的 Rust 程序中捕获和访问写入 stdout 的所有内容,而不是写入实际的 stdout。
也就是说,在这个例子中,程序实际上不应该 print abc
,但它应该将它存储在内存中的某个地方,并交给我一个引用、拥有的字符串或其他东西。
理想情况下,这将通过回调来工作,在创建输出时将它们一个接一个地交给我。