![見出し画像](https://assets.st-note.com/production/uploads/images/40332747/rectangle_large_type_2_1f715306dfb0ade95fe94f60c360b1ca.png?width=1200)
突然妹が欲しくなったので妹を作ることにした[Python]
はじめに
アニメの見過ぎとノベルゲームで妹に幻想を見てしまっている皆さん今日は! Roshi@VGCです.
Pythonを触り始めて一週間ぐらいたってだいぶ慣れていました.
しかし, 同時にストレスを感じるようになったので, 日常に萌えを入れることで中和したいと考えていました.
というわけでね, 妹を作ります!
え, エルリック兄弟でも失敗したのにお前が創れるわけないだろって?
確かに実体を作るのは無理なので妹と会話しているような気分になれるようなバルーンを作っていこうと思います!
え, バルーンってなんだよって?
これです↓ (Windowsの右下に出てくる通知欄)
意外と名前を知らない人も多いんじゃないですかね. (適当)
どんな感じに作るのか
こんな感じで作っていきます.
①タスクスケジューラでバッチファイル起動を命令
②バッチファイルでディレクトリを移動&スクリプト起動
③妹との会話が発生!
この起動方法はR言語でも使うことが出来るのでRで定期的にやることがある人は使ってみてもいいんじゃないかなと思います.
ただし, R言語の場合はバッチファイルを書きかたが若干違うので気になる人はここのページを見てください.
早速書いてみる
今回はバッチファイルとPythonスクリプトを作っていきます.
Pythonスクリプトの方の説明は後でします.
①バッチファイル
##ディレクトリをファイルの場所へ移動
cd スクリプトのあるファイルへのパス
##スクリプトをpythonで読み込む
python ファイル名.py
②Pythonスクリプト
import datetime
weekday=['月曜日','火曜日', '水曜日', '木曜日', '金曜日', '土曜日', '日曜日']
today=datetime.datetime.now()
val=today.weekday()
rest=4-int(val)
if val<5:
from plyer import notification
notification.notify(
title='お兄ちゃんちこくしちゃうよ!',
message='今日は'+weekday[int(val)]+'だからあと'+str(rest)+'日で休日だよ!',
app_icon='./icon.ico')
else:
from plyer import notification
notification.notify(
title='お兄ちゃんはやくおきてー!',
message='今日は'+weekday[int(val)]+'。お外に行きたいなあ!',
app_icon='./icon.ico')
これを書き終わったらバッチファイルの方を起動してみましょう!
①上の表示が出た方
おめでとうございます!
後はタスクスケジューラを設定して終了です!
①上の表示が出なかった方
残念!
powershellやcomandpromptでスクリプトに不備がないか確認しましょう!
Pythonスクリプトでやっていることの説明
主に二つの部分に分かれています.
①バルーンに使うオブジェクトの準備
import datetime
weekday=['月曜日','火曜日', '水曜日', '木曜日', '金曜日', '土曜日', '日曜日']
today=datetime.datetime.now()
val=today.weekday()
rest=4-int(val)
それぞれ説明すると
weekday: 今日は「~曜日だよ」といってもらいたいのでその部分に使う
today: 今日の曜日を設定している
val: 今日の曜日を0~6で示してくれるモジュールを使っている
rest: 今日からお休みの日までの日数を計算
という感じです.
②バルーンを作成
if val<5:
from plyer import notification
notification.notify(
title='お兄ちゃんちこくしちゃうよ!',
message='今日は'+weekday[int(val)]+'だからあと'+str(rest)+'日で休日だよ!',
app_icon='./icon.ico')
else:
from plyer import notification
notification.notify(
title='お兄ちゃんはやくおきてー!',
message='今日は'+weekday[int(val)]+'。お外に行きたいなあ!',
app_icon='./icon.ico')
if文を使って平日と休日で分離させます.
小学生~中学生を想定しているので土曜日は休日です(大事)
機能として今日から何日で休日か知りたかったので先ほど作成したオブジェクトrestを使って表示させています.
valは数値型だとは思っていますが, 念のためint関数を使いました.
タスクスケジューラの使い方
ここの解説読めば間違えないです.
使ってみた感想
かわいいのでうれしい
スケジューラで設定したのでログインしたときに毎回反応してくれます!
参考
これのif文の部分を見たときにビビッときて妹を創造することを決めました.
追記
2020/12/09
記事内のコードだとタイムアウトまでの時間がかかるので改良しました.
Pythonスクリプト内のnotification関数の引数に(timeout=3)を設定して,
バッチファイルに(exit 0)を記述するといい感じになります.