首页 >>  正文

python中not的用法

来源:baiyundou.net   日期:2024-09-09

作者:王忘杰

全民制作人大家好,我是学习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":"hbase","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监控+企业微信机器人告警

厉拜贸1121python中的 if not 怎么理解 定义一个函数test()返回bool值 然后 if not test() 怎么理解这个语句? -
劳面独15065472128 ______ 大家讲的都差不多1. if 语句用来检验一个条件, 如果 条件为真,我们运行一块语句(称为 if-块 ), 否则 我们处理 另外一块语句(称为 else-块 ). else 从句是可选的.---python简明教程2.test() 真 not test()假 , if not test() 不执行 test()假 not test()真 ,此时 if not test()后面的就可以被执行了

厉拜贸1121python中if not(i%j): break.什么意思 -
劳面独15065472128 ______ if条件语句后面需要跟随bool类型的数据,即True或者False.然而,如果不是bool类型的数据,可以将其转换成bool类型的数据,转换的过程是隐式的. 在Python中,None、空列表[]、空字典{}、空元组()、0等一系列代表空和无的对象会被转换成False.除此之外的其它对象都会被转化成True. 在命令if not 1中,1便会转换为bool类型的True.not是逻辑运算符非,not 1则恒为False.因此if语句if not 1之下的语句,永远不会执行.

厉拜贸1121Python 中 not 'x' in 'sex' 和 'x' not in 'sex' 有区别吗 -
劳面独15065472128 ______ 'x' not in 'sex' : 'x'不在'sex'里,不在的话返回true,在返回false not 'x' in 'sex' : 先判断'x'在'sex',然后取not. 其实两个结果一样,就是结构上就是not的先后顺序有点不一样.

厉拜贸1121python not 和 != 的区别.if a not 123和if a != 123,一样吗? -
劳面独15065472128 ______ if a not 123:python中没有这种写法,是错的

厉拜贸1121python中不属于应该怎么编 -
劳面独15065472128 ______ 不属于就是不在范围内的意思: 可以使用not in:A=[1,2,3,4,5] a=6 if a not in A: print "Not In"

厉拜贸1121python in和not in 在list中可以用吗 -
劳面独15065472128 ______ 自然是可以的.元组列表都是可以用的. Sequence Types — str, unicode, list, tuple, bytearray, buffer, xrange 在上面这些类型里面都是可以使用in/not in的.

厉拜贸1121数据库中的空值与NULL的区别以及python中的NaN和None -
劳面独15065472128 ______ 当使用None时: areaCode = None for val in valList: areaCode += ',' 此时就会报错:TypeError: unsupported operand type(s) for +=: 'NoneType' and 'unicode' NnoeType不允许和unicode对象进行+=连接 使用: areaCode = '' for val in valList: areaCode += ',' 此时正常. 两者区别: None是一个空的对象,代表什么都没有. 而'',是一个字符串对象,代表一个空的字符串. 只有字符串才能和字符串相互连接.

厉拜贸1121python 显示not all arguments converted during string formatting -
劳面独15065472128 ______ 改成这样试试 cur.executemay('insert into num1 values("%s")',values)

厉拜贸1121python2.7中,表达式: not 3 ** 5 < - 1 返回的是True -
劳面独15065472128 ______ < 小于是关系运算符用于比较, not是逻辑运算符,返回相反的bool值 据我所知所有的关系运算符优先级都高于逻辑运算符,所以是先计算 3**5 <-1的值 如 2>1 and 3>2 肯定是先运算关系运算 2>1 和3>2 再执行逻辑运算and

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024