|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
小知识:Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
比来学python的人比拟多,明天讲一下python的基本:python剧本的标准、缩进、编写功效函数时留意事项等,这些都是本身编程过程当中的心得领会。
1、python剧本的标准:
每一个剧本都有本身的标准,以下的标准不是强迫的,然则标准一下,可使你的剧本标准、易懂、便利应用。
#!/usr/bin/envpython
#-*-coding:utf-8-*-
这个写在开首,界说剧本编码。如今多半都是UTF8格局,所以写剧本尽可能用这个编码,碰到中文可以做编码处置,字符串编码处置重要就是encode和decode
importos,urllib,MySQLdb,time,platform
导入须要的模块。
main():
pass
界说函数
if__name__=="__main__":
main()
这个就是说剧本从这里往下履行,假如是其他的剧本挪用这个剧本,这个剧本不至于履行其他的部门
提醒:以上是全部剧本中的标准,人人在写剧本的时刻尽可能这么做。
2、python的缩进
python的对缩进请求很严厉,缩进纰谬,就会报语法毛病;python中缩进就是一个tab键或是4个空格,4个空格比拟费事,直接一个tab键简略,所以没有特殊的需求,缩进普通用tab键。缩进相似于分层,统一缩进就是雷同的条理。见以下实例:
ifa==0:
printa
else:
printb
3、每个功效对应一个函数
这一点我以为最主要,每个功效就写一个函数,如许你的剧本清楚易懂,剧本其他复用这个功效也便利,剧本也不冗余。不建议不要一个函数外面有很多多少功效,使函数模块化。
4、体系敕令的援用
援用体系敕令的时刻,特殊是linux敕令,必定要写敕令的全路径,好比:
os.popen("/sbin/ifconfigeth0").read()
这个你直接
os.popen("ifconfigeth0").read()
如许也是没有成绩的,最少是你手动履行剧本时,这个是会履行的,然则剧本做cron的时刻,就不会履行了。所以这个要特殊留意。
5、异常处置
try:
pass
exceptException,e:
printe
个中e就是毛病毛病信息。try的异常处置这么写就足够用了,还有其他的办法,不经常使用。
以下是一个获得当地ip地址,从数据库查询ip的用处,去衔接一个URL,断定这个URL能否可以用,并写日记。重要讲了讲python操作数据库的经常使用用法。
[size=1em]1
[size=1em]2
[size=1em]3
[size=1em]4
[size=1em]5
[size=1em]6
[size=1em]7
[size=1em]8
[size=1em]9
[size=1em]10
[size=1em]11
[size=1em]12
[size=1em]13
[size=1em]14
[size=1em]15
[size=1em]16
[size=1em]17
[size=1em]18
[size=1em]19
[size=1em]20
[size=1em]21
[size=1em]22
[size=1em]23
[size=1em]24
[size=1em]25
[size=1em]26
[size=1em]27
[size=1em]28
[size=1em]29
[size=1em]30
[size=1em]31
[size=1em]32
[size=1em]33
[size=1em]34
[size=1em]35
[size=1em]36
[size=1em]37
[size=1em]38
[size=1em]39
[size=1em]40
[size=1em]41
[size=1em]42
[size=1em]43
[size=1em]44
[size=1em]45
[size=1em]46
[size=1em]47
[size=1em]48
[size=1em]49
[size=1em]50
[size=1em]51
[size=1em]52
[size=1em]53
[size=1em]54
[size=1em]55
[size=1em]56
[size=1em]57
[size=1em]58
[size=1em]59
[size=1em][size=1em]#!/usr/bin/envpython
[size=1em]#-*-coding:utf-8-*-
[size=1em]importos,urllib,MySQLdb,time,platform
[size=1em]deflog_w(text):
[size=1em]logfile="/tmp/websocket.log"
[size=1em]ifos.path.isfile(logfile):
[size=1em]if(os.path.getsize(logfile)/1024/1024)>100:
[size=1em]os.remove(logfile)
[size=1em]now=time.strftime("%Y-%m-%d%H:%M:%S")
[size=1em]tt=str(now)+" "+str(text)+"
"
[size=1em]f=open(logfile,a+)
[size=1em]f.write(tt)
[size=1em]f.close()
[size=1em]defget_idcname(ip):
[size=1em]try:
[size=1em]conn=MySQLdb.connect(host=192.168.8.43,port=3306,user=read_app,passwd=123456,charset=utf8,connect_timeout=20)
[size=1em]cursor=conn.cursor()#查询出的成果是元组情势,元组和列表根本一样
[size=1em]#cursor=conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)#查询成果是字典情势
[size=1em]sql="selecthost,userfrommysql.userwherehost=%s"%ip#python中履行sql语句一次只能是一个sql语句,一次只履行一条,假如用分号离开写多条的话是会报错的,假如是多条sql语句可以多写几个sql和cursor.execute()来离开履行
[size=1em]cursor.execute(sql)#履行sql语句
[size=1em]#cursor.executemany("""insertintodist_sniffer.sniffer_order_dayvalues(%s,%s,%s,%s,%s,%s,%s,%s,%s)""",values)#履行组合拔出数据库的时刻可以用这个,每一个%s代表一个数据库字段,values是一个元组或是一个列表
[size=1em]alldata=cursor.fetchall()#吸收sql履行成果,假如是写操作的,这个就不消了
[size=1em]#conn.commit()假如是写操作,须要这个去提交
[size=1em]cursor.close()
[size=1em]conn.close()#封闭数据库回话
[size=1em]returnalldata[0][0].encode(UTF8)#假如是写操作的话就没有前往值了。
[size=1em]exceptException,e:
[size=1em]return0
[size=1em]defget_ip():
[size=1em]os=platform.system()
[size=1em]ifos=="Linux":
[size=1em]ip=os.popen("/sbin/ifconfigeth0|grepinetaddr").read().strip().split(":")[1].split()[0]
[size=1em]elifos=="Windows":
[size=1em]importwmi
[size=1em]c=wmi.WMI()
[size=1em]network=c.Win32_NetworkAdapterConfiguration(IPEnabled=1)
[size=1em]forinterfaceinnetwork:
[size=1em]ifinterface.DefaultIPGateway:
[size=1em]ip=interface.IPAddress[0]
[size=1em]returnip
[size=1em]#printinterface.IPAddress[0],interface.MACAddress,interface.IPSubnet[0],interface.DefaultIPGateway[0],interface.DNSServerSearchOrder[0],interface.DNSServerSearchOrder[1]
[size=1em]#获得出网的ip地址、MAC地址、子网掩码、默许网关、DNS
[size=1em]defweb_status():
[size=1em]ip=get_ip()
[size=1em]idc_name=get_idcname(ip)
[size=1em]url="http://www.text.com/index.php?idc_ip=%s&idc_name=%s"%(ip,idc_name)
[size=1em]get=urllib.urlopen(url)
[size=1em]ifget.getcode()==200:
[size=1em]aa=int(get.read().strip())
[size=1em]ifaa==1:
[size=1em]text="WebservicereturnOK"
[size=1em]else:
[size=1em]text="WebservicereturnError"
[size=1em]else:
[size=1em]text="ConectwebserviceError"
[size=1em]printtext
[size=1em]log_w(text)
[size=1em]if__name__=="__main__":
[size=1em]web_status()
一开端就要养成一个好习气,如许对今后python编程是非常无益的。本身的深切领会。
小知识:CentOS完全免费,不存在REDHATAS4需要序列号的问题。 |
|