- くだすれPython(超初心者用) その22
927 :デフォルトの名無しさん[sage]:2014/05/14(水) 21:07:01.61 ID:8hs3vCSL - >>925
手直ししてみた。bugの所は>>924で対処して。 from subprocess import check_output, CalledProcessError from datetime import datetime from tkinter import Label from time import sleep import re threshold = 10 fmt = "Firefoxを使い始めてから\n{}分以上経過しました。" msg = fmt.format(threshold) while True: try: x = check_output(["pidof", "firefox"]) except CalledProcessError: pass pid = x.decode().rstrip() try: y = check_output(["ps", "-p", pid, "-o", "etime"]) except CalledProcessError: pass s = y.decode() m = re.search("\d+:\d+$", s) str_etime = m.group() etime = datetime.strptime(str_etime, "%M:%S") # 1時間1分経過したとき、etime.minute(=1) < threshold(=10) だと思うけど? # 無限 loop 前提の動作なら、bug では? if etime.minute >= threshold: label = Label(None, text=msg, font=("sans-serif", 16)) label.pack(padx=8, pady=8) label.mainloop() sleep(30)
|