![]() |
1
3
|
![]() |
2
6
嘿,三个问题合一!;-) 它有时会阻塞——即使您的服务器生成数据非常快,理论上网络瓶颈也会导致您的读取阻塞。 使用“for dat in req”读取url数据意味着一次读取一行——如果您正在读取二进制数据(如图像),那么这并不真正有用。如果你使用
当然可以阻止。 这是否是最好的方法取决于问题中没有的细节。例如,如果您需要在不进行阻塞调用的情况下运行,则需要考虑类似这样的框架 Twisted .如果你不想阻止阻止你,也不想使用Twisted(这是一个全新的模式,与阻止方式相比,阻止方式做事情),那么你可以旋转一个线程来读写文件,而你的主线程继续其愉快的方式:
很明显,我省略了错误检查/异常处理等,但希望这足以让您了解情况。 |
![]() |
3
3
另一种选择是使用
然而,
|
![]() |
4
1
是,当您赶上服务器时,它将阻塞,直到服务器产生更多数据。 每个DAT将是一行,包括末尾的换行符。 扭曲是个不错的选择 我将在您的示例中交换“with”和“for”的值,您真的想打开和关闭到达的每一行的文件吗? |
|
user1431084 · 如何获取重定向url? 7 年前 |
![]() |
jman · 为什么urllib2需要很长时间才能读取? 7 年前 |
![]() |
Javiar Sandra · 对输入来自文本框的网页进行爬网 9 年前 |
![]() |
user2278224 · Python XML解析失败 9 年前 |
![]() |
michaeluskov · Urllib2下载损坏的二进制数据 10 年前 |
![]() |
ehsan shirzadi · 使用urllib2发出带有标题的post请求 10 年前 |