第三个论点urllib.url检索是一个函数,文件的总大小为1

2024-10-02 16:24:55 发布

您现在位置:Python中文网/ 问答频道 /正文

争论urllib.url检索是一个函数。它有三个参数:计数到目前为止传输的块数,以字节为单位的块大小,以及文件的总大小,但文件的总大小返回-1,例如:

def reportbook(a,b,c):
    print "%.2f%%" % (100*a*b/c)
urllib.urlretrieve("http://www.baidu.com","files/baidu.html",reportbook)

在本例中,reportbook是函数,c是文件的总大小。 c返回-1,但不应返回-1。在

不正确吗?但在另一个例子中,当

urllib.urlretrieve("http://www.python.org","files/baidu.html",reportbook)

返回的实际总大小页码:549在

为什么


Tags: 文件函数httpurl参数字节htmlwww
2条回答

你的代码没有问题,百度只是不能告诉你它会发送多少数据。下面是一个wget会话的示例:

$ wget "http://www.baidu.com"
 2014-07-30 16:29:26   http://www.baidu.com/
Resolving www.baidu.com (www.baidu.com)... 220.181.111.188, 220.181.112.244
Connecting to www.baidu.com (www.baidu.com)|220.181.111.188|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Saving to: ‘index.html’

因此,您应该分别处理特殊情况c == -1。在

在百度不提供Content-Length标头。Python.org网站做。如果缺少Content-Length头,那么-1将作为第三个参数传递给报表挂钩。在

相关问题 更多 >