三行代码  ›  专栏  ›  技术社区  ›  Eric D

while循环如何知道移动到下一个信息块?

  •  -1
  • Eric D  · 技术社区  · 1 月前
    import urllib.request, urllib.parse, urllib.error
    
    img = urllib.request.urlopen('http://data.pr4e.org/cover3.jpg')
    fhand = open('cover3.jpg', 'wb')
    size = 0
    while True:
        info = img.read(100000)
        if len(info) < 1: break
        size = size + len(info)
        fhand.write(info)
    
    print(size, 'characters copied.')
    fhand.close()
    

    这个while循环如何知道移动到下一个100000字节的块?我知道在for循环中,循环通过数据向前移动。我对while循环的理解是,除非另有说明,否则它们会一遍又一遍地做相同的事情。我没有看到循环被指示不反复读取相同的100000字节。

    作为参考,这只是Python第12章中的一个例子。

    谢谢

    1 回复  |  直到 1 月前
        1
  •  0
  •   himanshu    1 月前

    read()函数将读取100000字节,并将指针移到该字节的末尾。因此,在下一次read()期间,它将从100001字节中读取。所以它不是一遍又一遍地读取相同的100000字节