一、python 脚本的规范:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import os,urllib,MySQLdb,time,platform

main():

pass

if __name__ == "__main__":

main()

二、每一个功能对应一个函数

这一点我认为最重要,每一个功能就写一个函数,这样你的脚本清晰易懂,脚本其他复用这个功能也方便,脚本也不冗余。不建议不要一个函数里面有好多功能,使函数模块化。

三、系统命令的引用

os.popen("/sbin/ifconfig eth0").read()

四、异常处理

try:

pass

except Exception,e:

print e

以下是一个获取本地 ip 地址,从数据库查询 ip 的用途,去连接一个 URL,判断这个 URL 是否可以用,并写日志。主要讲了讲 python 操作数据库的常用用法。

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import os,urllib,MySQLdb,time,platform

def log_w(text):

logfile = "/tmp/websocket.log"

if os.path.isfile(logfile):

if (os.path.getsize(logfile)/1024/1024) > 100:

os.remove(logfile)

now = time.strftime("%Y-%m-%d %H:%M:%S")

tt = str(now) + "\t" + str(text) + "\n"

f = open(logfile,'a+')

f.write(tt)

f.close()

def get_idcname(ip):

try:

conn = MySQLdb.connect(host = '192.168.8.43',port=3306,user = 'read_app',passwd = '123456',charset='utf8',connect_timeout=20)

cursor = conn.cursor()#查询出的结果是元组形式,元组和列表基本一样

#cursor = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor)#查询结果是字典形式

sql = "select host,user from mysql.user where host='%s'" % ip#python中执行sql语句一次只能是一个sql语句,一次只执行一条,如果用分号分开写多条的话是会报错的,如果是多条sql语句可以多写几个sql和cursor.execute()来分开执行

cursor.execute(sql)#执行sql语句

#cursor.executemany("""insert into dist_sniffer.sniffer_order_day values(%s,%s,%s,%s,%s,%s,%s,%s,%s) """,values)#执行组合插入数据库的时候可以用这个,每个%s代表一个数据库字段,values是一个元组或是一个列表

alldata = cursor.fetchall()#接收sql执行结果,如果是写操作的,这个就不用了

#conn.commit()如果是写操作,需要这个去提交

cursor.close()

conn.close()#关闭数据库回话

return alldata[0][0].encode('UTF8')#如果是写操作的话就没有返回值了。

except Exception,e:

return 0

def get_ip():

os = platform.system()

if os == "Linux":

ip = os.popen("/sbin/ifconfig eth0|grep 'inet addr'").read().strip().split(":")[1].split()[0]

elif os == "Windows":

import wmi

c=wmi.WMI()

network = c.Win32_NetworkAdapterConfiguration (IPEnabled=1)

for interface in network:

if interface.DefaultIPGateway:

ip = interface.IPAddress[0]

return ip

#print interface.IPAddress[0],interface.MACAddress,interface.IPSubnet[0],interface.DefaultIPGateway[0],interface.DNSServerSearchOrder[0],interface.DNSServerSearchOrder[1]

#获取出网的ip地址、MAC地址、子网掩码、默认网关、DNS

def web_status():

ip = get_ip()

idc_name = get_idcname(ip)

url = "http://www.text.com/index.php?idc_ip=%s&idc_name=%s" % (ip,idc_name)

get = urllib.urlopen(url)

if get.getcode() == 200:

aa = int(get.read().strip())

if aa == 1:

text = "Webservice return OK"

else:

text =  "Webservice return Error"

else:

text = "Conect webservice Error"

print text

log_w(text)

if __name__ == "__main__":

web_status()

转载于:https://blog.51cto.com/2892931976/1746274

python 语言的基础规范相关推荐

  1. Python语言编程基础

    Python 技能目标 理解编程基本原理和思想 掌握python语言的基础语法 能够使用python进行基本的开发工作 熟练使用项目开发IDE:eclipse,PyDev 能够使用Python开发简单 ...

  2. Python语言语法描述规范BNF介绍

    Python语言语法描述规范BNF介绍 读官方的 Python 语言参考(The Python Language Reference)需要了解BNF. BNF(Backus Normal Form:巴 ...

  3. python语言编程基础-Python语言入门详解!快速学成Python!

    原标题:Python语言入门详解!快速学成Python! 很多技能是被职场所需要的,但很可惜... 这些技能在大学中并学习不到. 大学和职场现实存在的横沟对大部分同学来说难以跨越或碰得头破血流... ...

  4. python语言编程基础视频_网络编程-5_ Python系列视频(一)——Python语言基础_Python视频-51CTO学院...

    通过学习,对Python有一定的了解,学习Python语法,可以使用Python原生语言开发项目.对于Python的应用于开发有一个系统的认知,对于未来的发展方向有清晰的认识.主要知识点包括基本语法. ...

  5. Python语言零基础入门教程(一)

    Python 基础语法 Python 语言与 Perl,C 和 Java 等语言有许多相似之处.但是,也存在一些差异. 在本章中我们将来学习 Python 的基础语法,让你快速学会 Python 编程 ...

  6. python语言的基础知识_pythone语言基础知识汇总

    python语法的基础知识 相关推荐:<python视频> 数据类型 常用的数据类型:数字(number),字符串(string),list(数组),tuple(元组),dict(字典) ...

  7. 华为python语言通用编程规范 模块导入顺序_Python编程规范

    1,Python编程规范 > 编码 所有的 Python 脚本文件都应在文件头标上 #-*- coding:utf-8 -*- 用于设置编辑器,默认保存为 utf-8 格式. > 注释 业 ...

  8. python语言面试基础_【python面试指北】1.语言基础

    1. python是动态强类型的语言. 动态还是静态指的是编译器还是运行期确定类型 强类型指的是不会发生隐式类型转换.比如js能够执行1+"1",但是python不行,所以pyth ...

  9. python语言面试基础_Python面试宝典之基础篇-04

    Python面试宝典之基础篇-04 发布时间:2020-08-19 02:59:03 来源:ITPUB博客 阅读:101 接着更新Python常见的面试题! 题目016:写一个函数,给定矩阵的阶数n, ...

最新文章

  1. 过滤请求绝技,布隆过滤器与布谷鸟过滤器
  2. setTimeout和setInterval方法
  3. 2015.5.28 面试题1:赋值运算符函数
  4. 微信小程序 RTMP 音视频 通话 ffmpeg_音视频常见问题分析和解决:HLS切片丢帧引起的视频卡顿问题排查...
  5. 从OpenFOAM的源码中查找信息
  6. IDEA写vue项目出现红色波浪线警告如何解决??
  7. UNIX(多线程):23---线程池注意事项和常见问题
  8. 目标检测再次革新!图灵奖得主团队提出Pix2Seq,将Detection变成了Image Captioning...
  9. 操作数组的常用方式二-----排序、查找
  10. sdoi2015 位图+区间+矩形
  11. oracle查询性能表关联,通过调节索引 优化Oracle关联查询性能
  12. Redmi K40S难产:缺芯是根本原因 明年或有望缓解
  13. 并查集【算法笔记/晴神笔记】
  14. 计算机网络操作系统的主要功能和类型,操作系统的五大管理功能和四大分类
  15. 计算机文化基础(高职高专版 第十一版)第九章 答案
  16. 第13期-在线的文章摘要生成器, 自己写了一个支持中文的
  17. 用golang从企业微信里获取打卡记录的方法
  18. Epub电子书的格式(二)
  19. PAT测试 cccc竞赛
  20. uml 菱形_UML图符号的含义

热门文章

  1. Android百度媒体云,云端媒体
  2. Java快速入门学习笔记4 | Java语言中的if条件语句
  3. 控制台无法连接_指挥中心控制台整体解决方案,告别“信息孤岛”
  4. ssg国际数字货币商城源码货币商城+数字货币+双端APP
  5. 随行笔记小程序个人信息页源码
  6. (一)KitJs瀑布流组件特点
  7. 9:04 2009-7-28
  8. SEO之Google--PageRank优化剖析(一)
  9. 使用 jQuery Mobile 与 HTML5 开发 Web App (十四) —— jQuery Mobile 方法下
  10. HTML Email 编写指南