python编程判断是否为闰年
作者:王忘杰
全民制作人大家好,我是学习python两天半的练习生王忘杰,喜欢路由交换、linux、网络安全,开整!这是我的第二篇0基础python文章,请大家支持,谢谢~
开发思路
用于监控指定的URL,在我的场景中,我是从腾讯VPS上监控公司宽带出口,当URL访问超时时,即为宽带故障。
设计思路很简单,访问失败发送告警,访问成功发送恢复通知,同时要使用配置文件进行配置,防止持续重复告警。
绘制开发流程图
使用python语言实现
#!/usr/bin/python3import requests
import time
import json
import os# 监测URL是否正常响应def url_check(url): # 当前时间 check_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
try: # 请求URL, 设置3s超时, 忽略SSL证书 r = requests.get(url, timeout=3, verify=False)
if r.status_code == 200:
fo = open(config,"r")
line = fo.read(1)
print(line) #判断配置文件内容 if line == "1":
print("发送报警")
fo.close()
fo = open(config, "w")
fo.write('0')
print("配置重置为0") # 请求响应状态 msg = "监控的URL:%s%sURL恢复状态正常:%s%s监测时间:%s" % (
url, "nn", r.status_code, "nn", check_time) # 推送消息 yun_push(msg)
else:
print("当前配置为",line)
fo = open(config, "w")
fo.write('0')
print("配置重置为0")
else:
fo = open(config, "r")
line = fo.read(1)
print(line)
if line == "1":
print("退出程序")
else:
print("发送报警")
fo.close()
fo = open(config, "w")
fo.write('1')
print("配置重置为1") # 请求响应状态 msg = "监控的URL:%s%sURL访问异常:%s%s监测时间:%s" % (
url, "nn", r.status_code, "nn", check_time) # 推送消息 yun_push(msg)
except:
fo = open(config, "r")
line = fo.read(1)
print(line)
if line == "1":
print("退出程序")
else:
print("发送报警")
fo.close()
fo = open(config, "w")
fo.write('1')
print("配置重置为1") # 请求响应状态 msg = "监控的URL:%s%sURL访问失败,无法连接%s监测时间:%s" % (
url, "nn", "nn", check_time) # 推送消息 yun_push(msg)
def yun_push(content):
url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=用自己的'
s = json.dumps({'msgtype': 'text', 'text': {"content" : content}})
print(requests.post(url, data=s).text)
if __name__ == '__main__': #判断配置文件是否存在,不存在则生成配置文件并退出,配置文件则存在执行 config = './baidu.config'
if not os.path.exists(config):
print("配置文件不存在")
file = open(config,'w')
file.close()
print("配置文件已生成")
else:
print("配置文件存在,执行URL检测")
url_check("https://www.baidu.com/")
运行效果
正式使用
在VPS部署python脚本,并设置定时任务即可
查看文章精彩评论,请前往什么值得买进行阅读互动
","gnid":"96c6a833d821e0468","img_data":[{"flag":2,"img":[{"desc":"","height":"274","title":"","url":"https://p0.ssl.img.360kuai.com/t015394727360c3cdc6.jpg","width":"600"},{"desc":"","height":"616","title":"","url":"https://p0.ssl.img.360kuai.com/t016ff92dc7f2116c3c.jpg","width":"359"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"cache","pub_time":1683810195000,"pure":"","rawurl":"http://zm.news.so.com/41b69145e2771cb08cd67bac9f05abc6","redirect":0,"rptid":"4cdf902d8b0d23e5","rss_ext":[],"s":"t","src":"什么值得买","tag":[{"clk":"ktechnology_1:机器人","k":"机器人","u":""}],"title":"0基础上手python编程,实践URL监控+企业微信机器人告警
皇耍荀1490python 怎么查看进程是否存在 -
莫呢彼19132958837 ______ #!/usr/bin/env python import os import signal # Change this to your process name processname = 'aterm' for line in os.popen("ps xa"): fields = line.split() pid = fields[0] process = fields[4] if process.find(processname) > 0: # Kill the Process. ...
皇耍荀1490用python编写程序判断闰年? -
莫呢彼19132958837 ______ # Leap Year Check if year % 4 == 0 and year % 100 != 0: print(year, "是闰年") elif year % 100 == 0: print(year, "不是闰年") elif year % 400 ==0: print(year, "是闰年") else: print(year, "不是闰年")
皇耍荀1490python if 语句可以多条件判断么 -
莫呢彼19132958837 ______ “python if”语句可以多条件判断. Python 编程中 if 语句用于控制程序的执行,基本形式为: if 判断条件: 执行语句……else: 执行语句……if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来...
皇耍荀1490Python中,判断a,b,c是否构成三角形的表达式是 - 上学吧普法考试
莫呢彼19132958837 ______ # coding:UTF-8 def rept(file): f=open(file,'r') lines=f.readlines() f.close() lines.sort() oldline='z^z^z^z^z^z^z^z^z' k=1 for newline in lines: if (newline==oldline)and(k!=1): return True else: oldline=newline k+=1 return False print(rept('c:/python27/rep.txt'))
皇耍荀1490python+selenium 怎么判读某个按钮是否可点击? -
莫呢彼19132958837 ______ 应该没有这种方法的,因为只要能找到网页元素,都可以进行click()操作的,也只是说点击了后,有没有响应或者跳转等等所以一般都是判断是否能找到你想要找的元素.try: ...
皇耍荀1490python 判断一个字符能否用gbk和utf8编码 -
莫呢彼19132958837 ______ 使用chardet库.它会去猜测文本文件的编码,并返回形如: 编码类型:utf-8 置信度:0.9 这样的结果,也就是说chardet断定该文件有90%的可能性是utf-8编码的. 不过chardet的缺陷就是,它不能完全100%确定文件的编码类型. 目前我的做法是,如果置信度超过0.95,那么就认定chardet的判断结果是正确的.否则,再加上一些人机交互操作进行判断. 目前,chardet库官网提供的版本只适用于Python 2,如果您使用的是Python 3.x,我可以另外上传一个.
皇耍荀1490python编写判断是不是素数的程序中,为什么不能输出结果 -
莫呢彼19132958837 ______ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 num =int(input("请输入一个大于3的数:")) # num = 7 # 为 n 赋初值毫无意义,n = 2 去掉了 flag =False # 只要有一个 2 到 num - 1 的数,能整除 num, 那 num 就不是素数,所以需要这个 flag forn inrange...
皇耍荀1490python点进去编程,每一步都能出结果,是用来检验程序是否正确的吗?把它保存再点开程序一闪即过. -
莫呢彼19132958837 ______ 真正编程的时候,也不可能输入一行就想看错在哪里. 要这样的话,大型的\复杂的软件还怎么编程啊! 而是把所有代码输入完成后,再进行调试,看哪里出错.
皇耍荀1490python判断字符串中是否只有ASCII编码字符 -
莫呢彼19132958837 ______ ascii字符长度只有8位,而其他编码的字符往往有16位或32位 利用这一点可以进行判断 将字符串解码成unicode,判断长度是否与解码前相同 # -*- coding: utf-8 -*- a = '中国123' b = a.decode('utf-8') print a,len(a) == len(b) a = 'abc' b = a.decode('utf-8') print a,len(a) == len(b)