-3

我正在尝试将命令的值输出到文件。我试过了:

threaddump() >> /dir/newdir/newfile.log

它不工作。

那么,如何将命令的输出重定向到目录中的文件?python的版本是2.3.4。

4

1 回答 1

1

您的方法存在误解。Python 不是一个 shell,而是一个简单的解释器。shell 允许启动程序,并且它总是可以[1] 向启动的程序提供一些上下文数据,例如环境变量、当前工作目录以及用于重定向到文件的标准 IO 流(stdin、stdout、stderr)。由于任何 Python 函数都与调用者在同一进程中运行,因此它可以使用相同的全局对象,其中包括流。

这为您提供了几种解决问题的方法:

  1. 临时将 sys.stdout 重定向到文件。如果更改调用的代码不是一个好的选择,这尤其有用,否则我宁愿不这样做,因为它会影响整个过程。

  2. 从函数返回数据并将其打印到调用者站点的文件中。

  3. 将文件传递给函数,函数打印到该函数。

[1] 我知道的唯一例外是 MS Windows CE,它没有环境变量、工作目录或传递标准 IO 流的方法。

于 2013-04-13T06:27:19.687 回答