繁体   English   中英

Python从wget捕获输出?

[英]Python capture output from wget?

是否可以从wget和其他使用curses的命令行程序捕获输出? 这是我现在所拥有的:

p = subprocess.Popen(cmd, stdout=subprocess.PIPE, bufsize=0)
for line in p.stdout:
    print "a"

这对于具有简单输出的程序非常有效,但不适用于wget和其他使用curses的程序。

我不相信wget在使用诅咒。

. 通常,当我想在脚本中使用wget ,可以使用-O -选项将其输出强制为 . 我怀疑您是在尝试捕获运行时通常在控制台上看到的文本,即

在Python外部的命令行中,只需运行以下命令:

wget -O - http://www.somesite.org/ > /tmp/wget.out 2> /tmp/wget.err

然后看两个输出文件。 如果您在控制台/终端上看到wget任何输出,则说明您运行的命令与我所见过的有所不同。

messages then you have two choices. 如我所怀疑,如果您实际上对消息感兴趣,那么您有两种选择。

  • 更改命令以添加2>&1并将shell=True添加到Popen()参数
  • 或者(最好)将stderr=subprocess.PIPE添加到您的Popen()参数中

anyway (assuming your using wget to fetch the data and write it into files). 如果您始终不使用 ,则使用前者非常方便(假设您使用wget来获取数据并将其写入文件)。 file option to get your data. 在后一种情况下,您将从文件选项中读取以获取数据。

module but I wouldn't recommend that. 顺便说一句:如果您确实需要捕获curses数据...,您可以尝试使用标准的模块,但我不建议这样做。 您最好从以下位置获取pexpect模块:

而且不要担心年龄或版本号,它适用于Python 2.5和2.6以及2.4和2.3。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM