なりけんぶろぐ

なりけんぶろぐ

ガジェットやアニメが好きなゆとり世代の産物が気まぐれで更新中。

息抜き上手のPython3

こんにちは。

宇宙よりも遠い場所に憧れる

21歳のしがない大学生です。

三年生です。就活真っただ中です。

余裕ぶっこいて何もしていませんが。

スロウスタートですね。

 

「就活に」

という訳では全くありませんが

暇つぶし、息抜きにこんなの作りました。

言語は

みんな大好きPython3です。

f:id:nariken1226:20180206111039j:plain

こんなの

個人的には気に入ってます。

というか

我ながら良い物が出来たなぁと。

しみじみ。

_人人人人人人_
> 手前味噌 
 ̄Y^Y^Y^Y^Y ̄

 

ちなみに

この画面で

「i」キーを押すと

yahooの鉄道うんこ情報(関東)に飛びます。

 

「w」キーを押すと

天気情報を引っ張ってきている所に飛びます。

 

「平常運転」と出ているところは

[平常運転,遅延,運転見合わせ,交通障害,運行情報あり,接続エラー,情報取得中]

の7種類の表示に対応させています。

 

こういう時に限って遅延しない中央線はナンバリングを「KY」に変えた方が良い。

2018/2/3追記

予想最高と予想最低も

出してみました。

f:id:nariken1226:20180203142819j:plain

今日は割と暖かい(*´ω`)
2018/2/4追記

0時から15時までは予想最高

15時以降はその日の最高

 

0時から6時までは予想最低

6時以降はその日の最低

 

を出すようにしてみました。

f:id:nariken1226:20180204084900j:plain

日曜日は絶対に外に出ない
本日二度目の追記


降水確率も出してみました。

f:id:nariken1226:20180204143040j:plain

そろそろやめにしないとキリがない

2018/2/5追記

湿度と明日の天気も(ry

f:id:nariken1226:20180205121203j:plain

止められない止まらない
2018/2/6追記

明日の予想最高とよs(ry

f:id:nariken1226:20180206111039j:plain

ふぅ
2018/2/??追記

・温度、湿度、曜日による背景色の変更。

時報機能追加。

f:id:nariken1226:20180215111837j:plain

春らしくなってきましたね

#####

備忘録的に

ソースコードも。

 

他で定義した変数が散在してますが

運行情報取得はこんな感じ。

#-----002_路線情報ソース取得----- 
source_base_url = "https://transit.yahoo.co.jp/traininfo/detail/"
def get_train_info():
    global htmls
    global thread_train_info
    global LAST_UPDATE_TIME_TRAIN
    
    try:
        for i in range(len(RAILWAY_LINES)):
            RAILWAY_LINES[i] = urlopen(source_base_url + railway_line_codes[i] + "/0/")
            RAILWAY_LINES[i] = BS(RAILWAY_LINES[i].read(),"lxml")
        htmls = [RAILWAY_LINES[0],RAILWAY_LINES[1],RAILWAY_LINES[2],RAILWAY_LINES[3],
                 RAILWAY_LINES[4]]
    except URLError:
        htmls = []
    except IndexError:
        htmls = htmls
        
    now = datetime.datetime.now()
    LAST_UPDATE_TIME_TRAIN = "{0:%H:%M}".format(now)
    
    thread_train_info = threading.Timer(60, get_train_info)
    thread_train_info.start()
#---end_002---

#-----運行状況判定-----
def return_status(RAILWAY_LINES,source):
    Railway_Line_NAME = source.find_all("dt")
    Railway_Line_NAME = Railway_Line_NAME[1].get_text()
    
    if "平常運転" in Railway_Line_NAME:
        Railway_Line_NAME = 0
    elif "列車遅延" in Railway_Line_NAME:
        Railway_Line_NAME = 1
    elif "運転見合わせ" in Railway_Line_NAME:
        Railway_Line_NAME = 2
    elif "交通障害" in Railway_Line_NAME:
        Railway_Line_NANE = 3
    else:
        Railway_Line_NAME = 4
    
    return Railway_Line_NAME
#-----

お天気情報はこんな感じ。

#-----003_お天気情報取得-----
def get_weather_info():
    global TEMP_C
    global WEATHER_TYPE
    global thread_weather_info
    global LAST_UPDATE_TIME_WEATHER
    
    try:
        weather_source = urlopen(weather_source_url)
        weather_info = BS(weather_source.read(),"lxml")
        
        #-----現在気温取得-----
        TEMP_F = weather_info.findAll("div",{"class":"current-temp"})
        TEMP_F = TEMP_F[0].get_text()
        TEMP_F = return_numerical(TEMP_F, 2)
        TEMP_C = conversion_from_F_to_C(TEMP_F)
        #-----

        #-----お天気アイコン取得-----
        WEATHER_TYPE_links = weather_info.find_all("img")
        weather_type = []
        for WEATHER_TYPE in WEATHER_TYPE_links:
            weather_type.append(WEATHER_TYPE.get("src"))
        WEATHER_TYPE = return_numerical(weather_type[1], 1)
        #-----
        
    except URLError:
        TEMP_C = "N/A"
        WEATHER_TYPE = 48
     
    now = datetime.datetime.now()
    LAST_UPDATE_TIME_WEATHER = "{0:%H:%M}".format(now)
    
    thread_weather_info = threading.Timer(60, get_weather_info)
    thread_weather_info.start()
#---end_003---

 

現役のSEさんからは

鼻で笑われそうですね(笑)

 

 

息抜きにプログラムを書くのもいいものです。

皆さんも是非。

 

久しぶりにブログを書いて

良い息抜きになりました。

 

以上、

Python大好き なりけんさん

でした。

またいつか。

広告を非表示にする