草庐IT

stdout_writer

全部标签

go - 重定向Go中子进程的stdout管道

我正在用Go编写一个程序,它执行类似服务器的程序(也是Go)。现在我想在我启动父程序的终端窗口中拥有子程序的标准输出。一种方法是使用cmd.Output()函数,但这仅在进程退出后打印标准输出。(这是一个问题,因为这个类似服务器的程序运行了很长时间,我想读取日志输出)变量out属于typeio.ReadCloser而且我不知道应该用它做什么来完成我的任务,而且我在网上找不到任何关于这个主题的有用信息。funcmain(){cmd:=exec.Command("/path/to/my/child/program")out,err:=cmd.StdoutPipe()iferr!=nil{f

python - 如何从 subprocess.Popen() 获取输出。 proc.stdout.readline() block ,没有数据打印出来

我想要执行Test_Pipe.py的输出,我在Linux上尝试了以下代码,但没有成功。Test_Pipe.pyimporttimewhileTrue:print"Someting..."time.sleep(.1)Caller.pyimportsubprocessassubpimporttimeproc=subp.Popen(["python","Test_Pipe.py"],stdout=subp.PIPE,stdin=subp.PIPE)whileTrue:data=proc.stdout.readline()#block/waitprintdatatime.sleep(.1)pr

linux - 一个进程如何拦截Linux上另一个进程的stdout和stderr?

我有一些脚本本应该停止运行,但会一直挂着。有什么方法可以让我以一种可读的方式弄清楚他们向STDOUT和STDERR写入的内容吗?例如,我尝试过这样做:$tail-f/proc/(pid)/fd/1但这并没有真正起作用。无论如何,这是一个很长的镜头。还有其他想法吗?strace本身就非常冗长且难以阅读。注意:我只对他们的输出感兴趣,对其他任何东西都不感兴趣。我有能力自己弄清楚其他事情;这个问题只关注在启动它之后访问正在运行的进程的stdout和stderr。 最佳答案 由于我不允许编辑Jauco的答案,我将给出对我有用的完整答案(Ru

python - sys.stdout.flush() 方法的使用

sys.stdout.flush()是做什么的? 最佳答案 Python的标准输出是缓冲的(这意味着它会在将其写入终端之前收集一些“写入”到标准输出的数据)。调用sys.stdout.flush()会强制它“刷新”缓冲区,这意味着它会将缓冲区中的所有内容写入终端,即使通常它会在这样做之前等待。这里有一些关于(非)缓冲I/O及其有用的有用信息:http://en.wikipedia.org/wiki/Data_bufferBufferedvsunbufferedIO 关于python-sy

linux - 使用命令行在启动后重定向进程的 STDERR/STDOUT?

在shell中你可以做重定向,>等等,但是在程序启动之后呢?这就是我问这个问题的方式,在我的终端后台运行的程序不断输出烦人的文本。这是一个重要的过程,所以我必须打开另一个shell以避免文本。我希望能够>/dev/null或其他一些重定向,以便我可以继续在同一个shell中工作。 最佳答案 关闭并重新打开您的tty(即注销并重新打开,这也可能会终止您在进程中的一些后台进程)您只有一个选择:使用gdb附加到有问题的进程,然后运行:pdup2(open("/dev/null",0),1)pdup2(open("/dev/null",0)

java - 如何将 Reader 转换为 InputStream 并将 Writer 转换为 OutputStream?

有没有一种简单的方法可以避免处理文本编码问题? 最佳答案 如果您从字符串开始,您还可以执行以下操作:newByteArrayInputStream(inputString.getBytes("UTF-8")) 关于java-如何将Reader转换为InputStream并将Writer转换为OutputStream?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/62241/

java - 是否需要分别关闭每个嵌套的 OutputStream 和 Writer?

我正在写一段代码:OutputStreamoutputStream=newFileOutputStream(createdFile);GZIPOutputStreamgzipOutputStream=newGZIPOutputStream(outputStream);BufferedWriterbw=newBufferedWriter(newOutputStreamWriter(gzipOutputStream));我是否需要关闭每个流或编写器,如下所示?gzipOutputStream.close();bw.close();outputStream.close();还是只关闭最后一个

ruby - 在 Popen 中合并 stdout 和 stderr

在Ruby的popen/spawn中,如何在不使用>2&1的情况下将STDOUT和STDERR合并为一个流?在Python中,这将是:>>>importsubprocess>>>subprocess.check_output('my_progargs',stderr=subprocess.STDOUT,shell=True)注意stderr参数。IuseOpen3-因为我不想要只是stdout-但它已经将它们分成两个流。 最佳答案 使用您的otherquestion中的代码,给你:cmd='a_prog--arg...--arg2.

ruby - 使用 Ruby CSV::Writer 生成包含换行符的字段

我想让CSV::Writer在带引号的字符串中生成一个换行符:A,B,"LineLine",C以便该行在Excel中显示为:A,B,Line,CLine是否可以防止CSV:Writer去除换行符?如果没有,切换到FasterCSV是否可以解决这个问题? 最佳答案 当前的CSV模块支持单个单元格中的换行符。来自IRBsession:require'csv'CSV.open("./testfile.csv","w")do|csv|csv切换到FasterCSV也可以。来自另一个IRBsession:require'fastercsv'F

ruby - 如何从命令行在 ruby​​ 中打开 STDOUT.sync

我有调用ruby​​脚本和监控STDOUT的Objective-C代码。但是,ruby默认情况下似乎不会同步STDOUT,因此我需要将STDOUT.sync=true放在脚本的开头以查看输出。我可以在调用ruby​​脚本时将其作为命令行选项执行吗? 最佳答案 您可以创建一个设置文件以在脚本之前要求。然后使用-r标志调用ruby​​:ruby-r"$HOME/.rubyopts.rb"myscript.rb您还可以设置环境变量RUBYOPT以在每次运行ruby​​时自动包含该文件:exportRUBYOPT="-r$HOME/.rub