1

我有一个简单的命令行实用程序,可以在控制台和文件系统上产生输出。虽然我非常了解如何捕获控制台输出,但我不知道如何截取文件——我事先知道文件名。

我想在不接触文件系统的情况下将执行保持在“内存中”,因为我会立即解析和删除创建的文件,这会造成不必要的瓶颈(尤其是当我需要运行这个小工具数百万次时)。

所以,总而言之,我正在努力实现以下目标:

  1. 使用 python 的子进程运行二进制文件
  2. 捕获工具的输出和它创建的文件的内容(在当前工作目录中,预先知道名称)
  3. 理想情况下,在不接触文件系统的情况下运行它。
4

1 回答 1

0

由于您只需要支持 Linux,因此一种可能性是使用命名管道。这个想法是将输出文件预先创建为命名管道,并让您的进程从管道读取工具的输出。

例如,参见命名管道简介

Python API 是os.mkfifo().

于 2012-11-23T15:17:31.310 回答