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')
-----------------------------------------------------------------------
取りだした音楽ファイルの処理結果をプリント出力してみたら、悪い点が一目瞭然でした。
改造前の処理結果では、最後に空行(中身のない改行だけの行)があります。これが選択されると、処理はされても肝心の音楽は鳴らないわけです。
この問題は、その昔に分かっていて、新しいPyMusicSP.pyでは新しい処理で作成したのですが、古いスクリプトの見直しは面倒でさぼっていました(どうせ、古いのは使わないから、、と、その時は思ったのです)。やはり、きちんと対応しておくべきでした。
そういう意味では、他のスクリプトもチェックしないといけないと思うのですが、今更では(処理を忘れていて)いじれないものもあるので、悩みどころです。
----------------------------------------------------------------------
モジュールは 「Python スクリプト 雑記」 の「1.3 目覚まし PyWakeUpSP」 に追加しました。
| 固定リンク
「Python」カテゴリの記事
- Python: SMS送信スクリプト jSendSMS を作成した(2018.04.21)
- Python 電話帳アプリ jContactsM を更新した jContactsM_202(0)(2018.04.19)
- Python 一部の機種で動かないスクリプトのテストをした(2018.04.15)
- Python: WEB小説のデータ取得スクリプト PyBookGet 更新 V1_12(0)(2018.04.13)
- Python: WEB小説のデータ取得スクリプト PyBookGet 更新 V1_11(0)(2018.03.27)
「アプリケーション」カテゴリの記事
- Python: SMS送信スクリプト jSendSMS を作成した(2018.04.21)
- Python 電話帳アプリ jContactsM を更新した jContactsM_202(0)(2018.04.19)
- Python 一部の機種で動かないスクリプトのテストをした(2018.04.15)
- Python: WEB小説のデータ取得スクリプト PyBookGet 更新 V1_12(0)(2018.04.13)
- Python: WEB小説のデータ取得スクリプト PyBookGet 更新 V1_11(0)(2018.03.27)
「携帯電話」カテゴリの記事
- Python: SMS送信スクリプト jSendSMS を作成した(2018.04.21)
- Python 電話帳アプリ jContactsM を更新した jContactsM_202(0)(2018.04.19)
- Nokia E52 でファームウエアのupdateチェックをしてみた(2018.04.16)
- Python 一部の機種で動かないスクリプトのテストをした(2018.04.15)
- Python: WEB小説のデータ取得スクリプト PyBookGet 更新 V1_12(0)(2018.04.13)
コメント