草庐IT

stdout_writer

全部标签

python - 从在 *nix 环境中调用的 python 脚本重定向 stdout 无法正常工作

我有一个Python程序,其中有一些Print语句,然后调用了一些c++可执行文件,我还从中获得了一些输出到标准输出。当我在unix终端中运行这个python脚本时,我在屏幕上得到了预期的输出(以正确的顺序,即首先从打印然后从c++可执行文件)。问题是当我将此输出重定向到类似的文件时pythontest.py>out.txt我得到的输出顺序错误。我先得到c++可执行文件的输出,然后得到另一个。 最佳答案 您可以使用命令行开关-u以无缓冲输出运行python,即您可以只调用python-umyscript.py并且到stdout的输出

python - 删除 ANSI 颜色代码时打印到 STDOUT 和日志文件

我有以下功能可以为我的屏幕消息着色:deferror(string):return'\033[31;1m'+string+'\033[0m'defstandout(string):return'\033[34;1m'+string+'\033[0m'我按如下方式使用它们:printerror('Therewasaproblemwiththeprogram')print"Thisisnormal"+standout("andthisstandsout")我想将输出记录到一个没有ANSI颜色代码的文件(除了STDOUT之外),希望不必在每个print语句中添加第二个“记录”行。原因是,如果

python - 如果我在 subprocess.Popen() 中不使用 stdout=subprocess.PIPE 有什么区别?

我最近在Python中注意到subprocess.Popen()有一个参数:stdout=None(default)我还看到有人使用stdout=subprocess.PIPE。有什么区别?我应该使用哪一个?另一个问题是,为什么wait()函数有时不能等到进程真正完成?我用过:a=sp.Popen(....,shell=True)a.wait()a2=sp.Popen(...,shell=True)a2.wait()有时a2命令在命令a完成之前执行。 最佳答案 stdout=None表示,进程的stdout-handle直接从父进程

python - 使用 subprocess.Popen() 时,stderr 和 stdout 没有输出

我正在使用Python自动执行SVN提交,我想将SVN命令的输出写入日志文件。我拥有的代码可以使SVN运行,但问题是在成功提交时,subprocess调用不会为我的日志返回任何输出。相比之下,当我手动运行SVN时,我得到的输出显示了命令的进度并显示了正在提交的文件。这就是我想要在我的日志文件中的内容。SVN是否将该数据输出到缓冲区而不是stdout或stderr?如何为我的日志捕获该数据?这是我使用的代码:cmd="svncommit--non-interactive--no-auth-cache-m'Automaticcommit'./"process=subprocess.Pope

python - 在 Python 中使用 sys.stdout.write 嵌入变量

我可以通过这种方式在python中使用print语句嵌入变量i=10print"Valueis%s"%(i)输出Valueis10但是这样做i=10sys.stdout.write("Valueis%s")%(i)给我以下错误TypeError:unsupportedoperandtype(s)for%:'NoneType'and'int'我可以使用sys.stdout.write而不是print来嵌入变量吗? 最佳答案 你把括号弄错了。应该是i=10sys.stdout.write("Valueis%s"%i)%运算符将字符串和元

python unicode处理打印和sys.stdout.write之间的差异

首先我会说我已经看过这篇文章:Strangepythonprintbehaviorwithunicode,但那里提供的解决方案(使用PYTHONIOENCODING)对我不起作用。这是我的问题:Python2.6.5(r265:79063,Apr92010,11:16:46)[GCC4.1.220080704(RedHat4.1.2-44)]onlinux2>>>a=u'\xa6'>>>printa¦工作得很好,但是:>>>sys.stdout.write(a)Traceback(mostrecentcalllast):File"",line1,in?UnicodeEncodeErr

Python Popen().stdout.read() 挂起

我正在尝试使用Python的subprocess.Popen获取另一个脚本的输出,如下所示process=Popen(command,stdout=PIPE,shell=True)exitcode=process.wait()output=process.stdout.read()#hangshere它卡在第三行,只有当我将它作为python脚本运行并且我无法在pythonshell中重现时才挂起。另一个脚本只打印了几个字,我假设这不是缓冲区问题。有人知道我在这里做错了什么吗? 最佳答案 您可能想使用.communicate()而不

python - 启用 HTML 报告时禁用向 STDOUT 报告 Nose 覆盖率?

我正在使用nose(通过django-nose)与coverageplugin检查我的Django项目的测试覆盖率。我已将nose配置为在每次测试运行时生成HTML覆盖率报告:NOSE_ARGS=['--with-coverage','--cover-package=foot','--cover-html','--cover-html-dir=cover',]现在,我想禁用每次测试运行后显示的纯文本覆盖率报告;HTML更加实用,而且格式错误的长表格使得很难看到实际的测试输出。nosetests和coverage似乎都没有这样的选项,或者我只是找不到? 最佳答

python - 为什么 shell=True 会吃掉我的 subprocess.Popen stdout?

似乎在链的第一个进程中使用shell=True以某种方式从下游任务中删除标准输出:p1=Popen(['echo','hello'],stdout=PIPE)p2=Popen('cat',stdin=p1.stdout,stdout=PIPE)p2.communicate()#outputscorrectly('hello\n',None)让第一个进程使用shell=True以某种方式终止输出...p1=Popen(['echo','hello'],stdout=PIPE,shell=True)p2=Popen('cat',stdin=p1.stdout,stdout=PIPE)p2.

python - paramiko python 模块卡在 stdout.read()

我正在使用下面的代码:importparamikodefrunSshCmd(hostname,username,password,cmd,timeout=None):client=paramiko.SSHClient()client.set_missing_host_key_policy(paramiko.AutoAddPolicy())client.connect(hostname,username=username,password=password,allow_agent=False,look_for_keys=False,timeout=timeout)stdin,stdout