首页 > 解决方案 > 我正在尝试像 cmd 中的那样制作一个 ip pinger,但它不会工作

问题描述

import os
from playsound import playsound
from tkinter import *

root = Tk()
root.geometry('700x650')
c = Canvas(root, height=645, width=695, bg="orange")
s = c.create_rectangle(5, 5, 693, 200, fill="green")

def update():
    with open("C:\\Users\Wasif\Desktop\ipaddresses.txt") as file:
        dump = file.read()
        dump = dump.splitlines()

    for i in dump:
        ip = i.split()[1]
        host = i.split()[0]
        res = os.popen(f"ping {ip} -n 2").read()
        print(res)
        if "Request timed out" in res:
            playsound("C:\\Users\Wasif\Desktop\Alarm.mp3")
    x = res
    t = c.create_text(286, 100, fill="black", font="Times 20 italic bold", text=x)
    root.after(1000, update)  # run itself again after 1000 ms

c.pack()
update()
root.mainloop()

我希望它在丢包时发出警报并在屏幕上显示 ping,但它不会让步。完成此工作后,我将添加一个延迟检查器,我的问题出在画布上。有没有办法让它成为一个只有警报的exe,或者我必须用画布来做它。

标签: pythonloopstkintercanvas

解决方案


推荐阅读