标签: stdout

如何管stderr,而不是stdout?

我有一个程序可以将信息写入stdoutstderr,并且我需要grep通过什么来到stderr,而忽略了stdout.

我当然可以分2步完成:

command > /dev/null 2> temp.file
grep 'something' temp.file
Run Code Online (Sandbox Code Playgroud)

但我宁愿能够在没有临时文件的情况下做到这一点.有没有任何智能管道技巧?

bash grep stdout pipe stderr

933
推荐指数
8
解决办法
38万
查看次数

如何将输出重定向到文件和标准输出

在bash中,调用foo将在stdout上显示该命令的任何输出.

调用foo > output会将该命令的任何输出重定向到指定的文件(在本例中为'output').

有没有办法将输出重定向到文件并将其显示在stdout上?

linux io bash file-io stdout

898
推荐指数
9
解决办法
57万
查看次数

禁用输出缓冲

Python的解释器默认启用输出缓冲sys.stdout吗?

如果答案是肯定的,那么禁用它的所有方法是什么?

建议到目前为止:

  1. 使用-u命令行开关
  2. 包装sys.stdout在每次写入后刷新的对象
  3. 设置PYTHONUNBUFFEREDenv var
  4. sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

是否有任何其他方式来设置一些全局标志sys/ sys.stdout程序执行过程中?

python stdout buffered

487
推荐指数
10
解决办法
25万
查看次数

显示Windows命令提示符输出并将其重定向到文件

如何在Windows命令提示符下运行命令行应用程序并同时显示输出并重定向到文件?

例如,如果我要运行该命令dir > test.txt,则会将输出重定向到调用的文件test.txt而不显示结果.

我怎么能写一个命令显示输出输出重定向到在Windows命令提示符下一个文件,类似于teeUnix上的命令?

cmd stdout batch-file tee

355
推荐指数
16
解决办法
43万
查看次数

sys.stdout.write和print之间的区别?

有哪些sys.stdout.write()情况比较好print

(示例:更好的性能;更有意义的代码)

python printing stdout

351
推荐指数
9
解决办法
54万
查看次数

在Python中管道stdout时设置正确的编码

管道Python程序的输出时,Python解释器会对编码感到困惑,并将其设置为None.这意味着这样的程序:

# -*- coding: utf-8 -*-
print u"åäö"
Run Code Online (Sandbox Code Playgroud)

正常运行时会正常工作,但失败时:

UnicodeEncodeError:'ascii'编解码器无法对位置0中的字符u'\ xa0'进行编码:序数不在范围内(128)

当在管道序列中使用时.

在配管时使这项工作的最佳方法是什么?我可以告诉它使用shell/filesystem /无论使用什么编码吗?

到目前为止我看到的建议是直接修改你的site.py,或者使用这个hack对defaultencoding进行硬编码:

# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
print u"åäö"
Run Code Online (Sandbox Code Playgroud)

是否有更好的方法使管道工作?

python terminal encoding stdout python-2.x

327
推荐指数
7
解决办法
19万
查看次数

记录器配置以记录到文件并打印到stdout

我正在使用Python的日志记录模块将一些调试字符串记录到一个非常好的文件中.现在另外,我想使用这个模块也将字符串打印到stdout.我该怎么做呢?为了将我的字符串记录到文件,我使用以下代码:

import logging
import logging.handlers
logger = logging.getLogger("")
logger.setLevel(logging.DEBUG)
handler = logging.handlers.RotatingFileHandler(
    LOGFILE, maxBytes=(1048576*5), backupCount=7
)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)
Run Code Online (Sandbox Code Playgroud)

然后调用一个记录器函数

logger.debug("I am written to the file")
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

python logging stdout file

310
推荐指数
7
解决办法
21万
查看次数

将stdout重定向到Python中的文件?

如何将stdout重定向到Python中的任意文件?

当从ssh会话中启动长时间运行的Python脚本(例如,Web应用程序)并进行后台处理,并且ssh会话关闭时,应用程序将引发IOError并在尝试写入stdout时失败.我需要找到一种方法来将应用程序和模块输出到文件而不是stdout,以防止由于IOError导致的失败.目前,我使用nohup将输出重定向到一个文件,这就完成了工作,但是我想知道是否有办法在不使用nohup的情况下完成它,出于好奇.

我已经尝试了sys.stdout = open('somefile', 'w'),但这似乎并没有阻止一些外部模块仍然输出到终端(或者sys.stdout = ...线路根本没有发射).我知道它应该使用我测试过的简单脚本,但我还没有时间在Web应用程序上进行测试.

python stdout

285
推荐指数
8
解决办法
43万
查看次数

如何将stdout和stderr重定向到文件

我正在运行一个bash脚本,它创建一个日志文件来执行命令

我使用以下内容

Command1 >> log_file
Command2 >> log_file
Run Code Online (Sandbox Code Playgroud)

这仅发送标准输出,而不是终端上显示的标准错误.

我可以记录记录到文件的stderr和stdout吗?

bash stdout stderr

277
推荐指数
4
解决办法
19万
查看次数

如何在将屏幕保持在屏幕上的同时管道?(而不是输出文件)

我想在保持屏幕的同时管道程序的标准输出.

通过一个简单的例子(echo这里使用仅用于说明目的):

$ echo 'ee' | foo
ee < - 我希望看到的输出

我知道tee可以将stdout复制到文件中,但这不是我想要的.
$ echo 'ee' | tee output.txt | foo

我试过
$ echo 'ee' | tee /dev/stdout | foo但是因为tee输出到了/dev/stdout管道,所以它不起作用foo

bash shell stdout pipe output

214
推荐指数
5
解决办法
7万
查看次数

标签 统计

stdout ×10

python ×5

bash ×4

pipe ×2

stderr ×2

batch-file ×1

buffered ×1

cmd ×1

encoding ×1

file ×1

file-io ×1

grep ×1

io ×1

linux ×1

logging ×1

output ×1

printing ×1

python-2.x ×1

shell ×1

tee ×1

terminal ×1