« メモテキスト投稿用CGIを設置した、2つめ(Diary) | トップページ | 声楽レッスンクラス発表会のピアノ合わせ »

2013年5月18日 (土)

Python:また、PyWakeUpSP を改造した

2013-05-18(土)晴れ

 先日の 「久々にPythonスクリプト:、PyWakeUpSP と PyWakeUp を改造した」 の記事に引き続いて、今更なPythonスクリプト 「PyWakeUpSP」 の改造を行いました。

 「PyWakeUpSP」は目覚まし用に音楽を再生するスクリプトです。PyTaskServerというアプリで毎朝、決まった時刻に起動しますが、起動すると音楽を一曲だけ再生します。再生する音楽は、音楽ファイル名のリストからランダムに選びます。
 ところが、ごくまれに音楽がならないことに気がつきました。大体は、いつも音楽が終わった後に目が覚めるので気にならなかったのですが、たまたま気がついてしまいました。PyTaskServerのログを見ると、スクリプトは起動されていることになっています。
 首をひねりながら、リストを見ていて気がつきました。音楽ファイル名のリストの処理(テキスト処理)に抜けがありました。
 で、下記の改造を入れました。

改造内容
 ・音楽ファイル名のリスト(PyWakeUpSP.ini)をunicodeに変換してから扱うことと
  空行処理を追加しました。
 ・取りだした音楽ファイル名について、実際に音楽ファイルがあるかチェックする
  ようにしました。(無い場合は決めうちの音楽を再生する。)

改造前後の処理リスト
---- V.002(5)-----------------------------------------------------------

musics = fData.split("\n")
MUSIC = unicode(musics[random.randint(0, (len(musics) - 1))],'utf-8')

-----------------------------------------------------------------------

------V.002(6)---------------------------------------------------------

fData = unicode(fData,'utf-8')
musics = [x.strip() for x in fData.split(u"\n") if x.strip()  != u'']
MUSIC = musics[random.randint(0, (len(musics) - 1))]
if not os.path.exists(MUSIC):
    MUSIC = unicode(wakeup_music,'utf-8')
-----------------------------------------------------------------------

取りだした音楽ファイルの処理結果をプリント出力してみたら、悪い点が一目瞭然でした。

Pywaketest1  音楽ファイル名のリスト

Pywaketest2 改造前の処理結果

Pywaketest3 改造後の処理結果

 改造前の処理結果では、最後に空行(中身のない改行だけの行)があります。これが選択されると、処理はされても肝心の音楽は鳴らないわけです。

 この問題は、その昔に分かっていて、新しいPyMusicSP.pyでは新しい処理で作成したのですが、古いスクリプトの見直しは面倒でさぼっていました(どうせ、古いのは使わないから、、と、その時は思ったのです)。やはり、きちんと対応しておくべきでした。

 そういう意味では、他のスクリプトもチェックしないといけないと思うのですが、今更では(処理を忘れていて)いじれないものもあるので、悩みどころです。

----------------------------------------------------------------------

モジュールは 「Python スクリプト 雑記」 の「1.3 目覚まし PyWakeUpSP」 に追加しました。
 

|

« メモテキスト投稿用CGIを設置した、2つめ(Diary) | トップページ | 声楽レッスンクラス発表会のピアノ合わせ »

Python」カテゴリの記事

アプリケーション」カテゴリの記事

携帯電話」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/513620/57410936

この記事へのトラックバック一覧です: Python:また、PyWakeUpSP を改造した:

« メモテキスト投稿用CGIを設置した、2つめ(Diary) | トップページ | 声楽レッスンクラス発表会のピアノ合わせ »