0

我的代码是:

f=file('python3.mp3','wb')
conn=urllib2.urlopen(stream_url)
while True:
    f.write(conn.read(1024))

其中 stream_url 是我以 mp3 格式 (python3.mp3) 保存到磁盘的流的 url。

文件成功保存,但 while 循环永远不会终止。我想我对“真实”条件代表什么感到有些困惑?是在播放流的时候吗?连接打开时?我尝试在 while 循环中添加 conn.close() 和 f.close() ,但这会引发错误,因为它似乎正在中断写入过程。

4

2 回答 2

1

while True永远循环,或者直到你break. break当您阅读整个流时,您需要这样做:

f = file('python3.mp3','wb')
conn = urllib2.urlopen(stream_url)
while True:
    packet = conn.read(1024)
    if not packet:
        break  # We've read the whole thing
    f.write(packet)
于 2013-07-13T21:28:20.597 回答
0

只要while条件为 ,循环就会在其主体中运行代码True。你的条件总是True,所以你的while循环永远不会结束,这是正确的。while循环不关心除了它的条件之外的任何东西。

于 2013-07-13T21:26:11.180 回答