每隔几秒执行一次 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()
上方,这样信息就会在每个循环中实际更新。
我还是个初学者,写了一些代码从 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()
上方,这样信息就会在每个循环中实际更新。