如何使用os.system()从stdin获取数据

时间:2008-12-09 00:48:29

标签: python shell curl urllib os.system

我使用脚本从维基百科下载文本的唯一可靠方法是使用cURL。到目前为止,我这样做的唯一方法是致电os.system()。即使输出在python shell中正确显示,我似乎无法返回除退出代码(0)以外的任何内容。或者,有人可以证明如何正确使用urllib

3 个答案:

答案 0 :(得分:7)

来自Dive into Python:

import urllib
sock = urllib.urlopen("http://en.wikipedia.org/wiki/Python_(programming_language)")
htmlsource = sock.read()
sock.close()
print htmlsource

这将打印出Python Wikipedia文章的源代码。我建议你看看Dive into Python了解更多细节。

使用Python Library Reference:

中的urllib2的示例
import urllib2
f = urllib2.urlopen('http://www.python.org/')
print f.read(100)

编辑:您也可以查看wget.
Edit2:根据S.Lott的建议添加了urllib2示例

答案 1 :(得分:2)

回答这个问题, Python有一个子进程模块,允许您与衍生进程进行交互。http://docs.python.org/library/subprocess.html#subprocess.Popen

它允许您读取调用进程的stdout,甚至将项目发送到stdin。

然而正如你所说urllib是一个更好的选择。如果您search stackoverflow我相信您会发现至少10个其他相关问题......

答案 2 :(得分:0)

作为urllib的替代方案,您可以使用libCurl3}}。