最终,我需要将 Spotify API 中的信息提供给应用程序,以显示“当前歌曲”信息,包括提示时间。
因此需要不断轮询 API,并更新应用程序轮询的数据源。
我仍在尝试从流而不是文件的角度来思考数据。
所以我想出了这个小实验来了解如何不断更新文件:
import itertools
for i in itertools.count(start=0, step=1):
f = open('info.txt', 'w')
f.write(str(i))
f.close()
它甚至有点管用。我可以打开或cat info.txt
并间歇性地看到:
为什么有时什么也没有?
另外令人困惑的是,在交互式 python 终端内,会输出一串缓慢递增的低数字,从 4 开始:
4
4
4
4
etc...
5
5
5
5
etc...
正在使用f.write
持续更新可作为文件使用的一行数据的明智方法?
请尝试以下操作:
import os
import shutil
import itertools
for i in itertools.count(start=0, step=1):
f = open('tmp', 'w')
f.write(str(i))
f.close()
shutil.move('tmp', 'info.txt')
与打开-写入-关闭操作序列不同,文件移动是一个原子操作,可以避免捕获处于“不稳定”状态的 info.txt 文件,即在打开之后和写入操作之前。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)