Python 输出重定向

标签 python linux io

当我在 Linux 机器上运行 python3 解释器并试图将它的 stdout 重定向到这样的文件时,没有任何反应:

user@workmachine:~$ python3 > python.txt
Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
\>>>

文件 python.txt 在解释器运行时以及关闭后都保持为空。它的所有输出仍在终端中。

另一方面,如果我重定向 R 解释器 以同样的方式(R > R.txt)结果如预期(所有输出重定向到文件,在终端中看不到任何内容)。

有什么区别? python 是将它的所有输出写入另一个流而不是 stdout,还是什么?

最佳答案

对于您的情况,python 似乎将信息发送到 STDERR 而不是 STDOUT。所以你应该像这样使用重定向:

user@workmachine:~$ python3 2> python.txt

关于Python 输出重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52258235/

相关文章:

haskell - 内存和重复 IO monad

java - 在考虑使用阻塞套接字时,我可以使用哪些选项?

java - java I/O 中的 NoSuchElement 异常

python - Numpy中的均方误差?

java - Java 还是 Python 更适合在 Google App Engines 上编写网页源代码检查 Web 服务?

regex - sed 用正则表达式替换 bbcodes

在 Windows 上运行并生成 Linux 代码的 C++ 编译器

java - 文件分隔符 Java。它是在编译时还是在运行时确定的?

python - 如何将 python 包安装到/usr/local/bin?

python - 如何从包含 "\n"的列表中删除部分字符串?