2015-01-08 5 views
-1

У меня есть скрипт, который анализирует информацию из iTunes о текущей песне и печатает ее. Он печатает только если песня изменилась. Теперь я бы хотел, чтобы он печатался только в том случае, если минута песни прошла, но не может понять, как это сделать.Как печатать только в том случае, если прошло X времени

Это код, который я в настоящее время:

def giveData(): 
    last_title, last_artist, last_album = None, None, None 
    while True: 
     template = '"%s" by %s (%d)\n from %s' 
     info = '' 

iTunesCount = app('System Events').processes[its.name == 'iTunes'].count() 
if iTunesCount > 0: 
    iTunes = app('iTunes') 
    if iTunes.player_state.get() == k.playing: 
    track = iTunes.current_track.get() 
    artist = track.artist.get() 
    title = track.name.get() 
    album = track.album.get() 
    stars = track.rating.get()/20 

    if title != last_title or artist != last_artist or album != last_album: 

     last_title, last_artist, last_album = title, artist, album 
     info = template % (title, artist, stars, album) 

    # Trying new solution, still printing songs that haven't been playing 
    # for 60s, just delaying printing them by 60s: 

     now = time.time() 
     future = now + 60 
     while time.time() < future: 
     pass 

     song_info = title + " - " + artist 
     print song_info` 
+0

Что библиотеки питона, что вы используете? –

+0

Я использую Python 2.7.8 –

+0

Нам нужно знать, как вы получаете доступ к информации iTunes. –

ответ

0

Как насчет добавления счетчика времени?

import time 

now = time.time() 
future = now + 60 
while time.time() < future: 
    pass 

print '60 seconds have passed' 

или @Undeterminant отметил, просто использовать

time.sleep(60) 
+0

Похоже, это может сработать! Я попробую. –

+0

Я обновил его сейчас, предыдущий код пролетел бы не сработал;) –

+0

Я не получаю печать таким образом. Может быть, я не помещаю заявление в нужное место, прямо сейчас, когда текст комментария находится на моем оригинальном посте. –