秘書スクリプト(スケジュール編)
当日のスケジュールをメールするスクリプト。
schedule.txt(スケジュール記述ファイル:日付,時刻,内容)
2005-12-13,10:00,Math 2005-12-13,13:00,English 2005-12-13,15:00,Science 2005-12-14,12:00,Education 2005-12-14,18:00,Birthday Party 2005-12-16,12:00,Shopping
Scheduler.py
#!/usr/bin/python import time, smtplib, string schefile = '/home/laclef/scripts/schedule.txt' # スケジュール記述ファイル fromadd = 'laclef@myserver.com' # Fromに表示されるアドレス toadd = 'laclef@cellular.com' # To 送り先のアドレス smtpserv = 'smtp.myserver.com' # SMTPサーバ def schemail(msg): subj = "Today's Schedule" # メールタイトル mdata = ('From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n%s') %\ (fromadd, toadd, subj, msg) ss = smtplib.SMTP(smtpserv) ss.sendmail(fromadd, toadd, mdata) ss.quit() def scheduler(): msg = '' nsche = [] nowt = time.strftime('%Y-%m-%d') schedata = open(schefile).readlines() schedata.sort() for row in schedata: string.rstrip(row) r = string.split(row, ',') if r[0] == nowt: msg += r[1] + ' ' + r[2] + '\n' else: nsche.append(row) if msg != '': schemail(msg) schef = open(schefile, 'w') for row in nsche: schef.write(row) schef.close() if __name__=='__main__' : scheduler()
メールで送信された古いスケジュールは削除される。
残りのスケジュールはソート後、保存される。
スケジュールを追加する場合は、スケジュール記述ファイルに1行ずつ追加すれば良い。
これを、cronに登録する。
$ pwd /home/laclef/scripts $ chmod u+x Scheduler.py $ crontab -e 00 8 * * * /home/laclef/scripts/Scheduler.py $ crontab -l 00 8 * * * /home/laclef/scripts/Scheduler.py
これで、毎日8時に当日のスケジュールがメールされる。
Windowsで実行する場合は、4行目のスケジュール記述ファイルのパスを変更して、「Multi Function Alarm」*1の様なソフトウェアででコマンド実行させれば出来る。
朝の仕事が1つ減った。