标签: stdout

使用Python将CSV输出写入STDOUT

我知道我可以用以下内容写一个CSV文件:

with open('some.csv', 'w', newline='') as f:
Run Code Online (Sandbox Code Playgroud)

我如何将该输出写入STDOUT?

python stdout python-3.x

47
推荐指数
1
解决办法
2万
查看次数

如何从subprocess.Popen中获取'实时'信息在python(2.5)中

我想以下列方式使用子进程模块:

  1. 创建一个可能需要很长时间才能执行的新流程.
  2. 捕获stdout(或者stderr,或者两者一起或分别捕获)
  3. 处理来自子进程的数据,可能在接收的每一行上触发事件(在wxPython中说)或者只是暂时将它们打印出来.

我已经用Popen创建了进程,但是如果我使用communication(),那么一旦进程终止,数据就会立刻出现在我面前.

如果我创建一个单独的线程,做了阻塞readline()myprocess.stdout(使用stdout = subprocess.PIPE)我不明白这种方法的任何行或者,直到进程终止.(无论我设置为bufsize)

有没有办法解决这个不可怕的问题,并且在多个平台上运行良好?

python subprocess stdout popen

46
推荐指数
2
解决办法
1万
查看次数

管道输出subprocess.Popen到文件

我需要推出一批具有长期运行的进程subprocess.Popen,并希望有stdoutstderr从各自动管道分离日志文件.每个进程将同时运行几分钟,并且我希望在进程运行时将每个进程写入两个日志文件(stdoutstderr).

我需要不断地调用p.communicate(),以便更新每个日志文件上的每个进程在循环,或者是有一些方法来调用原有的Popen命令,以便stdoutstderr自动传输到打开的文件句柄?

python subprocess stdout

46
推荐指数
2
解决办法
6万
查看次数

在Python中使函数的stdout静音而不会破坏sys.stdout并恢复每个函数调用

有没有办法让Python在没有包含像下面这样的函数调用的情况下使stdout静音?

原始破码:

from sys import stdout
from copy import copy
save_stdout = copy(stdout)
stdout = open('trash','w')
foo()
stdout = save_stdout
Run Code Online (Sandbox Code Playgroud)

编辑:更正了Alex Martelli的代码

import sys
save_stdout = sys.stdout
sys.stdout = open('trash', 'w')
foo()
sys.stdout = save_stdout
Run Code Online (Sandbox Code Playgroud)

这种方式有效,但似乎非常低效.有是一个更好的办法.有任何想法吗?

python stdout

46
推荐指数
6
解决办法
4万
查看次数

从网站上的PHP脚本运行Java类文件

我有一个网站,希望能够允许用户从网站上运行服务器上的Java文件.

我希望用户单击一个按钮,该按钮将在服务器上运行Java文件,并且Java程序打印到标准输出的任何内容都将打印在网站上供用户查看.

如何做到这一点(从PHP调用Java程序并将标准从Java文件实时提供回PHP网站)?

更新:

感谢有关如何从PHP运行Java程序的答案.但是我也希望能够,因为Java程序正在打印到stdout,它将在执行时打印出大量文本,以便能够在网页上打印出来,以便用户可以看到Java程序正在执行中.

如何做到这一点,是否需要任何额外的AJAX或JavaScript或类似的东西?

php java scripting stdout

45
推荐指数
3
解决办法
8万
查看次数

如何使用googletest捕获stdout/stderr?

使用googletest框架时是否可以捕获stdout和stderr ?

例如,我想调用一个将错误写入控制台(stderr)的函数.现在,在测试中调用函数时,我想断言那里没有输出.

或者,也许我想测试错误行为,并希望在我(故意)产生错误时断言某个字符串被打印.

c++ unit-testing stdout googletest stderr

44
推荐指数
3
解决办法
3万
查看次数

在Go中,如何将函数的stdout捕获到字符串中?

例如,在Python中,我可以执行以下操作:

realout = sys.stdout
sys.stdout = StringIO.StringIO()
some_function() # prints to stdout get captured in the StringIO object
result = sys.stdout.getvalue()
sys.stdout = realout
Run Code Online (Sandbox Code Playgroud)

你能在Go中这样做吗?

stdout go

44
推荐指数
3
解决办法
3万
查看次数

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

我有一些应该停止运行的脚本,但永远都是这样.

有什么办法可以用可读的方式弄清楚他们写的是什么?stdout和stderr?

例如,我试过这样做

$ tail -f /proc/(pid)/fd/1
Run Code Online (Sandbox Code Playgroud)

但这并没有真正起作用.无论如何,这是一个长镜头.

还有其他想法吗?因为看到这一点,它本身就是非常冗长和难以理解的.

注意:我对他们的输出感兴趣,而不是其他任何东西.我有能力自己搞清楚其他事情; 这个问题只关注在启动它之后访问正在运行的进程的stdout和stderr .

linux stdout

43
推荐指数
5
解决办法
4万
查看次数

如何制作python 3 print()utf8

如何print("Some text")在UTF-8中使用python 3(3.1)到stdout,或者如何输出原始字节?

Test.py

TestText = "Test - ??????..šŠ??žŽ" # this is UTF-8
TestText2 = b"Test2 - \xc4\x81\xc4\x80\xc4\x93\xc4\x92\xc4\x8d\xc4\x8c..\xc5\xa1\xc5\xa0\xc5\xab\xc5\xaa\xc5\xbe\xc5\xbd" # just bytes
print(sys.getdefaultencoding())
print(sys.stdout.encoding)
print(TestText)
print(TestText.encode("utf8"))
print(TestText.encode("cp1252","replace"))
print(TestText2)
Run Code Online (Sandbox Code Playgroud)

输出(在CP1257和I中将字符替换为字节值[x00]):

utf-8
cp1257
Test - [xE2][xC2][xE7][C7][xE8][xC8]..[xF0][xD0][xFB][xDB][xFE][xDE]  
b'Test - \xc4\x81\xc4\x80\xc4\x93\xc4\x92\xc4\x8d\xc4\x8c..\xc5\xa1\xc5\xa0\xc5\xab\xc5\xaa\xc5\xbe\xc5\xbd'
b'Test - ??????..\x9a\x8a??\x9e\x8e'
b'Test2 - \xc4\x81\xc4\x80\xc4\x93\xc4\x92\xc4\x8d\xc4\x8c..\xc5\xa1\xc5\xa0\xc5\xab\xc5\xaa\xc5\xbe\xc5\xbd'
Run Code Online (Sandbox Code Playgroud)

print太聪明了......:D使用编码文本是没有意义的print(因为它总是只显示字节的表示而不是实际字节)并且根本不可能输出字节,因为无论如何打印并始终对其进行编码sys.stdout.encoding.

例如:print(chr(255))抛出错误:

Traceback (most recent call last):
  File "Test.py", line 1, in <module>
    print(chr(255));
  File "H:\Python31\lib\encodings\cp1257.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode …
Run Code Online (Sandbox Code Playgroud)

unicode encoding stdout utf-8 python-3.x

43
推荐指数
3
解决办法
6万
查看次数

运行Django测试时如何查看stdout?

当我运行测试时./manage.py test,无论我发送到标准输出通过print什么都不显示.当测试失败时,我会看到每个失败的测试都有一个"stdout"块,所以我猜Django会捕获它(但是当测试通过时它没有显示).

python testing django debugging stdout

42
推荐指数
4
解决办法
2万
查看次数