写入文件时陷入while循环

时间:2013-07-13 21:20:54

标签: python-2.7 io while-loop

我的代码是:

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

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

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

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

只要条件为whileTrue循环就会在其正文中运行代码。您的条件始终为True,因此您的while循环永远不会结束,这是正确的。除了条件之外,while循环并不关心任何事情。