每隔几秒执行一次 Python 文件,没有时间循环

Execute Python file every few seconds without time loop

我还是个初学者,写了一些代码从 Spotify API 中提取当前播放的曲目。当我执行一次时它工作正常,但我希望它不断更新。我找到了一个每 n 秒执行一次函数的解决方案,但这只会打印我第一次播放的曲目。即使在改变歌曲之后它仍然打印我之前播放的歌曲。

我试过的代码:

import spotipy
from spotipy.oauth2 import SpotifyOAuth
import cred
import time


scope = "user-read-playback-state"

sp = spotipy.Spotify(auth_manager=SpotifyOAuth(client_id=cred.client_id, client_secret=cred.client_secret, redirect_uri=cred.redirect_url, scope=scope, open_browser=False))

results = sp.current_user_playing_track()
starttime = time.time()

while True:
    print (results["item"]["name"])
    print (results["item"]["artists"][0]["name"])
    time.sleep(5.0 - ((time.time() - starttime) % 5.0))

我认为你的问题是 results 没有在 while 循环内更新。

所以只需将 while True: 语句移动到 results = sp.current_user_playing_track() 上方,这样信息就会在每个循环中实际更新。