学习python的一些代码

初学python收藏的代码

目录:
1、打开浏览器并登录126邮箱
2、连接mysql并新建数据库、表、插入数据
3、建立字典,给定两个长度的列表,用两个列表的所有数据组成字典
4、创建一个字典,并把这个字典中的按照字母顺序显示出来
5、一个简单的注册用户、登录、退出
6、在mysql数据库连续创建150个数据库
7、python各种类型的转换
8、python连接oracle
9、向oracle多个表定时插入数据
10、写文件输出文件初体验
11、python+splinter+iframe初体验
12、处理html页面元素的实例
13、批量增加用户
14、函数初体验
15、python+HTMLParser+urllib
16、在AIX上安装rpm包
17、在AIX上下载升级rpm包
18、整合16、17
19、改良17
20、杂
21、获取cpu_mem等
22、自定义类的调用
23、date 格式化输出
  1. 打开浏览器并登陆126邮箱
    (ubuntu11.04  splinter官网 )
    1. $  wget http://pypi.python.org/packages/source/s/setuptools/setuptools-06c11.tar.gz  #下载setuptools,下面安装splinter用到  
    2. $  tar zxvf setuptools-0.6c11.tar.gz  
    3. $  cd setuptools-0.6c11  
    4. $  /usr/bin/python setup.py build  
    5. $  sudo /usr/bin/python setup.py install  
    6. $  sudo apt-get install git   #获取splinter需要用到  
    7. $  git clone git://github.com/cobrateam/splinter.git  
    8. $  cd splinter  
    9. $  sudo python setup.py install  
    10. $  vi 126.py  
    1. import time  
    2. from splinter import Browser  
    3.   
    4. def splinter(url):  
    5.     browser = Browser()  
    6.     browser.visit(url)  
    7.     time.sleep(5)  
    8.     browser.find_by_id('idInput').fill('******')  
    9.     browser.find_by_id('pwdInput').fill('******')  
    10.     browser.find_by_id('loginBtn').click()  
    11.     time.sleep(8)  
    12.     browser.quit()  
    13.   
    14. if __name__ == '__main__':  
    15.     websize3 = 'http://www.126.com'  
    16.     splinter(websize3)  

  2. 连接mysql并新建数据库、表、插入数据
    (ubuntu12.04)
    $   sudo apt-get install python-mysqldb
    1. import MySQLdb  
    2. try:  
    3.     conn = MySQLdb.connect(host='localhost',user='root',passwd='password',port=3306)  
    4.     cur = conn.cursor()  
    5.     cur.execute('create database if not exists python')  
    6.     conn.select_db('python')  
    7. cur.execute('create table test(id int,info varchar(20)')  
    8.     value = [1,'hi rollen']  
    9.     cur.execute('insert into test values(%s,%s)',value)  
    10.     conn.commit()  
    11.     cur.close()  
    12.     conn.close()  
    13. except MySQLdb.Error,e:  
    14.     print "MySQL Error %d: %s " % (e.arrgs[0],e.args[1])  
    1. import MySQLdb  
    2. import random  
    3. import itertools  
    4. import string  
    5. str1 = 'abcdefghijklmnopqrstuvwxyz'  
    6. num = [1,2,3,4,5,6,7,8,9,0]  
    7. i = 0  
    8. try:  
    9.     conn = MySQLdb.connect(host='localhost',user='root',passwd='password',port=3306)  
    10.     cur = conn.cursor()  
    11. #    cur.execute('create database python')  
    12.     cur.execute('use python')  
    13. #    sql1 = 'create table test(id int,info varchar(20))'  
    14. #    cur.execute(sql1)  
    15.     while i < 3:  
    16.         id1 = random.randint(0,10)  
    17.         va = random.sample(str1,8)  
    18.         info = "".join(itertools.chain(*va))  
    19.         param={'id':id1,'info':info}  
    20.         ww = 'insert into test values( $id , \''+'$info \')'  
    21.         pp = string.Template(ww)  
    22.         sql2 = pp.substitute(param)  
    23.         cur.execute(sql2)  
    24.         print sql2  
    25.         i +=1  
    26.     conn.commit()  
    27.     cur.close()  
    28.     conn.close()  
    29. except MySQLdb.Error,e:  
    30.     print "MySQL Error %d:%s" % (e.args[0],e.args[1])  


  3. 建立字典,给定两个长度相同的列表,用两个列表的所有数据组成一个字典。
    1. a = [1,2,3,4,5]  
    2. b = ['a','b','c','d','e']  
    3. dict1= {}  
    4. t = [0,1,2,3,4]  
    5. for i in t:  
    6.     dict1[a[i]] = b[i]  
  4. 创建一个字典,并把这个字典中的建按照字母顺序显示出来
    1. a = {'a':1,'b':2,'g':4,'o':5,'j':6,'y':3}  
    2. sorted(a) = b  
    3. for key in b:  
    4.     print 'key = % s,value % ' %(key,a[key])  

  5. 一个简单的注册用户、登陆、退出
    1. db = {}  
    2. def newuser():  
    3.     prompt = 'login desired:'  
    4.     while True:  
    5.             name = raw_input(prompt)  
    6.             if db.has_key(name):  
    7.                 prompt = 'name taken,try another:'  
    8.                 continue  
    9.             else:  
    10.                 break  
    11.         pwd = raw_input('passwd:')  
    12.         db[name] = pwd  
    13. def olduser():  
    14.     name = raw_input('login:')  
    15.     pwd = raw_input('passwd:')  
    16.     passwd = db.get(name)  
    17.     if passwd == pwd:  
    18.         print 'welcome back',name  
    19.     else:  
    20.         print 'login incorrect'  
    21. def showmenu():  
    22.     prompt = """ 
    23. (N)ew User Login 
    24. (E)xisting User Login 
    25. (Q)uit 
    26. Enter choice:"""  
    27. done = False  
    28. while not done:  
    29.     chosen = False  
    30.     while not chosen:  
    31.         try:  
    32.             choice = raw_input(prompt).strip()[0].lower()  
    33.         except (EOFError,KeyboardInterrupt):  
    34.             choice = 'q'  
    35.         print '\nYou picked:[%s]' % choice  
    36.         if choice not in 'neq':  
    37.             print '\nInvalid option,try again'  
    38.         else:  
    39.             chosen = True  
    40.     if choice == 'q':done = True  
    41.     if choice == 'n':newuser()  
    42.     if choice == 'e':olduser()  
    43.   
    44. if __name__ == '__main__':  
    45.     showmenu()  
  6. 在mysql数据库连续新建150个数据库
    1. import MySQLdb  
    2. import time  
    3.   
    4. try:  
    5.     conn = MySQLdb.connect(host='192.168.88.240',user='scutech',passwd='dingjia',port=3306)  
    6.     cur = conn.cursor()  
    7.     i = 0  
    8.     t = {}  
    9.     while i<150:  
    10.         t[i] = 'create database python' +str(i) +' ;'  
    11.         cur.execute(t[i])  
    12.         print t[i]  
    13.         time.sleep(5)  
    14.         i +=1  
    15.     cur.close()  
    16.     conn.close()  
    17. except MySQLdb.Error,e:  
    18.     print "Mysql Error %d: %s" % (e.args[0],e.args[1])  
    扩展:连续删除,或新建之后插入数据。
  7. python各种类型的转换:
    1. int(x [,base ])         将x转换为一个整数    
    2. long(x [,base ])        将x转换为一个长整数    
    3. float(x )               将x转换到一个浮点数    
    4. complex(real [,imag ])  创建一个复数    
    5. str(x )                 将对象 x 转换为字符串    
    6. repr(x )                将对象 x 转换为表达式字符串    
    7. eval(str )              用来计算在字符串中的有效Python表达式,并返回一个对象    
    8. tuple(s )               将序列 s 转换为一个元组    
    9. list(s )                将序列 s 转换为一个列表    
    10. chr(x )                 将一个整数转换为一个字符    
    11. unichr(x )              将一个整数转换为Unicode字符    
    12. ord(x )                 将一个字符转换为它的整数值    
    13. hex(x )                 将一个整数转换为一个十六进制字符串    
    14. oct(x )                 将一个整数转换为一个八进制字符串    
    转自:http://blog.csdn.net/xihuanqiqi/article/details/8447192

  8. python连接oracle
    1. import cx_Oracle  
    2. conn = cx_Oracle.connect("system","dingjia","127.0.0.1:1521/scutech")  
    3. c = conn.cursor()  
    4. sql = "select name from v$datafile"  
    5. r = c.execute(sql)  
    6. li = r.fetchall()  
    7. for row in li:  
    8.     print row  
    1. 前提:需安装cx_Oracle-5.12-10g-py26-1.i386.rpm  
    1. connect("username","passwd","tns"),只要tnsping的通就行了  
  9. 向oracle多个表定时插入数据
    1. import cx_Oracle  
    2. import random  
    3. import itertools  
    4. import string  
    5. import time  
    6. conn = cx_Oracle.connect("irene","password","127.0.0.1:1521/scutech")  
    7. cursor = conn.cursor()  
    8. #sql1 = "create table customer(id number(5),name varchar2(30),addr varchar2(50),tel number(20),comp varchar2(50),year number(2))"  
    9. #sql11 = "create table goods(id number(5),name varchar2(30),addr varchar2(50),numb number(20),reserve number(10),price number(10))"  
    10. #sql12 = "create table sponsor(id number(5),name varchar2(30),tel number(20),goods varchar2(50),price number(10))"  
    11. #sql13 = "create table restaurant(id number(5),name varchar2(30),price number(10),addr varchar2(50),le number(2))"  
    12. #sql14 = "create table performance(id number(5),name varchar2(30),salary number(10),goods varchar2(50),perfo varchar(2),year number(2))"  
    13. #sql15 = "create table financial(id number(5),inside number(10),outside number(10),goods varchar2(50),people varchar2(30))"  
    14. #sql16 = "create table property(id number(5),name varchar2(30),price number(10),people varchar2(30),inpeople varchar2(30))"  
    15. #cursor.execute(sql1)  
    16. #cursor.execute(sql11)  
    17. #cursor.execute(sql12)  
    18. #cursor.execute(sql13)  
    19. #cursor.execute(sql14)  
    20. #cursor.execute(sql15)  
    21. #cursor.execute(sql16)  
    22. i=0  
    23. str1 = 'abcdefghijklmnopqrstuvwxyz1234567890'  
    24. var = 'abcdefghijklmnopqrstuvwxyz'  
    25. nn = [1,2,3,4,5,6,7,8,9,0]  
    26.   
    27. while i<3:  
    28.     n1 = random.randint(0,15)  
    29.     n2 = random.randint(16,25)  
    30.     # 10 random.randint(9999999,999999999)  
    31.     # 20 random.randint(9999999999,9999999999999)  
    32.     # 2 random.randint(0,50)  
    33.     name = "".join(itertools.chain(*random.sample(str1,n1)))  
    34.     addr = "".join(itertools.chain(*random.sample(str1,n2)))  
    35.     comp = "".join(itertools.chain(*random.sample(var,n2)))  
    36.     goods = "".join(itertools.chain(*random.sample(str1,n2)))  
    37.     people = "".join(itertools.chain(*random.sample(str1,n1)))  
    38.     inpeople = "".join(itertools.chain(*random.sample(str1,n1)))  
    39.     #***************************************************************customer***********************************************************  
    40.     param_c={'id':i,'name':name,'addr':addr,'tel':random.randint(999999999,999999999999),'comp':comp,'year':random.randint(0,50)}  
    41.     ww = 'insert into customer values($id,\'$name\',\'$addr\',$tel,\'$comp\',$year)'  
    42.     pp = string.Template(ww)  
    43.     sql2 = pp.substitute(param_c)  
    44. #    print sql2  
    45.     cursor.execute(sql2)  
    46.     #***************************************************************goods***************************************************************  
    47.     #param_g={'id':i,'name':name,'addr':addr,'numb':20,'reserve':10,'price':10}  
    48.     param_g={'id':i,'name':name,'addr':addr,'numb':random.randint(9999999999,9999999999999),'reserve':random.randint(9999999,999999999),'price':random.randint(9999999,999999999)}  
    49.     ww1 = 'insert into goods values($id,\'$name\',\'$addr\',$numb,$reserve,$price)'  
    50.     pp1 = string.Template(ww1)  
    51.     sql21 = pp1.substitute(param_g)  
    52. #    print sql21  
    53.     cursor.execute(sql21)  
    54.  #***************************************************************sponsor*************************************************************  
    55.     #param_s={'id':i,'name':name,'tel':20,'price':10,'goods':goods}  
    56.     param_s={'id':i,'name':name,'tel':random.randint(9999999999,999999999999),'price':random.randint(9999999,999999999),'goods':goods}  
    57.     ww2 = 'insert into sponsor values($id,\'$name\',$tel,\'$goods\',$price)'  
    58.     pp2 = string.Template(ww2)  
    59.     sql22 = pp2.substitute(param_s)  
    60. #    print sql22  
    61.     cursor.execute(sql22)  
    62.     #***************************************************************restaurant**********************************************************  
    63.     #param_r={'id':i,'name':name,'price':10,'addr':addr,'level':2}  
    64.     param_r={'id':i,'name':name,'price':random.randint(9999999,999999999),'addr':addr,'level':random.randint(0,50)}  
    65.     ww3 = 'insert into restaurant values($id,\'$name\',$price,\'$addr\',$level)'  
    66.     pp3 = string.Template(ww3)  
    67.     sql23 = pp3.substitute(param_r)  
    68. #    print sql23  
    69.     cursor.execute(sql23)  
    70.     #***************************************************************performance*********************************************************  
    71.     #param_pe={'id':i,'name':name,'salary':10,'goods':goods,'perfo':2,'year':2}  
    72.     param_pe={'id':i,'name':name,'salary':random.randint(9999999,999999999),'goods':goods,'perfo':random.randint(0,50),'year':random.randint(0,50)}  
    73.     ww4 = 'insert into performance values($id,\'$name\',$salary,\'$goods\',$perfo,$year)'  
    74.     pp4 = string.Template(ww4)  
    75.     sql24 = pp4.substitute(param_pe)  
    76. #    print sql24  
    77.     cursor.execute(sql24)  
    78.     #***************************************************************financial***********************************************************  
    79.     #param_f={'id':i,'outside':10,'inside':10,'goods':goods,'people':people}  
    80.     param_f={'id':i,'outside':random.randint(9999999,999999999),'inside':random.randint(9999999,999999999),'goods':goods,'people':people}  
    81.     ww5 = 'insert into financial values($id,$outside,$inside,\'$goods\',\'$people\')'  
    82.     pp5 = string.Template(ww5)  
    83.     sql25 = pp5.substitute(param_f)  
    84. #    print sql25  
    85.     cursor.execute(sql25)  
    86.     #***************************************************************property************************************************************  
    87.     #param_pr={'id':i,'name':name,'price':10,'people':people,'inpeople':inpeople}  
    88.     param_pr={'id':i,'name':name,'price':random.randint(9999999,999999999),'people':people,'inpeople':inpeople}  
    89.     ww6 = 'insert into property values($id,\'$name\',$price,\'$people\',\'$inpeople\')'  
    90.     pp6 = string.Template(ww6)  
    91.     sql26 = pp6.substitute(param_pr)  
    92. #    print sql26  
    93.     cursor.execute(sql26)  
    94.     print i  
    95.     i += 1  
    96.     time.sleep(30)  
    97. conn.commit()  
    98. cursor.close()  
    99. conn.close()  
  10. 写文件输出文件初体验
    1. fobj=open('test','w')  
    2. fobj.write('hello world')  
    3. fobj.close()  
  11. python+splinter+iframe初体验
    1. import time  
    2. from splinter import Browser  
    3. browser = Browser()  
    4. browser.visit('**********************')  
    5. time.sleep(3)  
    6. if browser.find_by_id('lhgfrm_lhgdgId'):  
    7.     with browser.get_iframe('lhgfrm_lhgdgId') as frame:  
    8.         frame.find_by_id('trialRadio').click()  
    9.         frame.find_by_id('continue').click()  
    10. browser.fill('username','admin')  
    11. browser.fill('password','admin')  
    12. browser.find_by_name('Submit').click()  
    13. time.sleep(8)  
    14. na = browser.find_by_id('Navigate5')  
    15. na.click()  
    16. na.find_by_tag('a')[2].click()  
    17. time.sleep(3)  
    18. browser.fill('strFTPName','python')  
    19. browser.find_by_id('hostInput').find_by_tag('input').fill('192.168.88.183')  
    20. browser.fill('textfield','python')  
    21. browser.find_by_id('Submit').click()  
    22. time.sleep(3)  
    23. alter = browser.get_alert()##这两句的意思是处理弹出框  
    24. alter.accept()  
    25. time.sleep(3)  
    26. browser.quit()   
  12. 处理html页面元素实例
    1. #-*-coding=utf-8  
    2. import time  
    3. from splinter import Browser  
    4. file1 = open('/home/irene/Documents/python/userpasswd')#打开userpasswd文件  
    5. i=0  
    6. while i < 50:  
    7.     browser = Browser()  
    8.     browser.visit('**************************')#访问页面  
    9.     m = file1.readline()#逐行读取文件  
    10.     uname = m[10:len(m)-1]#截取字符串  
    11.     print uname  
    12.     browser.fill('username',uname)#向页面输入文字  
    13.     m = file1.readline()  
    14.     passwd = m[8:len(m)-1]  
    15.     print passwd  
    16.     browser.fill('password',passwd)  
    17.     browser.find_by_name('Submit').click()#单击按钮  
    18.     i +=1  
    19.     assert browser.is_element_present_by_id('treeNodeId1')  
    20.     browser.find_link_by_href('javascript:void(0)')[1].click()  
    21.     browser.find_link_by_text('进入').click()  
    22.     browser.find_link_by_href('BackupWizardOracle.php?type=1').click()  
    23.     browser.find_by_tag('button')[0].click()#备份资源类型  
    24.     browser.find_by_tag('button')[3].click()#备份方法  
    25.     browser.find_by_tag('input')[24].click()#选择存储服务  
    26.     browser.find_by_tag('button')[6].click()#设备  
    27.     browser.find_by_tag('input')[29].click()#设置作业执行时间  
    28.     ti = browser.find_by_id('hour')  
    29.     ti.find_by_xpath("//option[@value='16']").click()  
    30.     browser.find_by_tag('button')[9].click()#作业信息  
    31.     alert = browser.get_alert()#处理弹出框  
    32.     alert.accept()  
    33.     browser.find_by_tag('button')[12].click()#提交作业  
    34.     browser.quit()  
    35. file1.close()  
  13. 批量增加用户
    1. import time  
    2. import random  
    3. import itertools  
    4. from splinter import Browser  
    5. browser = Browser()  
    6. browser.visit('*********************')  
    7. time.sleep(3)  
    8. browser.fill('username','admin')  
    9. browser.fill('password','admin')  
    10. browser.find_by_name('Submit').click()  
    11. time.sleep(3)  
    12. str1 = 'abcdefghijklmnopqrstuvwxwy0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'  
    13. fobj = open('/home/irene/Documents/python/userpasswd','w')  
    14. i=0  
    15. while i<200:  
    16.     na = browser.find_by_id('Navigate1')  
    17.     na.click()  
    18.     na.find_by_tag('a')[2].click()  
    19.     time.sleep(3)  
    20.     nu = random.randint(5,16)  
    21.     np = random.randint(10,29)  
    22.     name = "".join(itertools.chain(*random.sample(str1,nu)))  
    23.     passwd = "".join(itertools.chain(*random.sample(str1,np)))+str(i)  
    24.     browser.fill('username',name)  
    25.     browser.fill('password',passwd)  
    26.     browser.fill('confirmpassword',passwd)  
    27.     browser.fill('email','3r543@se.com')  
    28.     browser.find_by_id('telephone').fill(passwd)  
    29.     browser.find_by_id('RegisterBut').click()  
    30.     time.sleep(3)  
    31.     alert = browser.get_alert()  
    32.     alert.accept()  
    33.     i +=1  
    34.     print i  
    35.     fobj.write('username: '+name+'\n')  
    36.     fobj.write('passwd: '+passwd+'\n')  
    37.     time.sleep(30)  
    38. fobj.close()  
    39. browser.quit()  
  14. 函数初体验
    1. #-*-coding=utf-8  
    2. import time  
    3. from splinter import Browser  
    4. browser = Browser()  
    5. browser.visit('http://192.168.88.185/dbackup')#访问页面  
    6. browser.fill('username','dingjia')#向页面输入文字  
    7. browser.fill('password','dingjia123')  
    8. browser.find_by_name('Submit').click()#单击按钮  
    9. assert browser.is_element_present_by_id('treeNodeId1')  
    10. browser.find_link_by_href('javascript:void(0)')[1].click()  
    11. browser.find_link_by_text('进入').click()  
    12.   
    13. #dlog是否删除归档日志  
    14. def fun(type,method,equipment,jobname,dlog):  
    15.     browser.find_link_by_href('BackupWizardOracle.php?type=1').click()  
    16.     time.sleep(3)  
    17.     #备份资源类型  
    18.     print type  
    19.     browser.find_by_id(type).click()  
    20.     time.sleep(4)  
    21.     #是否备份表空间  
    22.     if(type=='tablespaceRadio'):  
    23.         browser.find_by_id('tablespaceChecbox').click()  
    24.         time.sleep(2)  
    25.     #是否备份数据文件  
    26.     if(type=='datafileRadio'):  
    27.         browser.find_by_id('datafileChecbox').click()  
    28.         time.sleep(2)  
    29.     #是否删除归档日志  
    30.     if(dlog=='n'):  
    31.         browser.find_by_id('archivedlogCheckbox').click()  
    32.         time.sleep(2)  
    33.     browser.find_by_tag('button')[0].click()#下一步  
    34.     #备份方法  
    35.     browser.find_by_id(method).click()  
    36.     browser.find_by_tag('button')[3].click()#下一步  
    37.     time.sleep(5)  
    38.     #设备  
    39.     browser.find_by_id(equipment).click()  
    40.     browser.find_by_tag('button')[6].click()#下一步  
    41.     time.sleep(2)  
    42.     #作业信息  
    43.     browser.find_by_id('jobName').fill(jobname)  
    44.     browser.find_by_tag('button')[9].click()#下一步  
    45.     time.sleep(2)  
    46.     #作业摘要  
    47.     browser.find_by_tag('button')[12].click()#提交作业  
    48.     time.sleep(5)  
    49.   
    50. if __name__ == "__main__":  
    51.     #---------------------数据库---------------------  
    52.     print '数据库(删除归档)--完全备份--本地'  
    53.     fun('databaseRadio','fullRadio','diskRadio','DFD0','')  
    54.     print '数据库(删除归档)--差异增量备份--本地'  
    55.     fun('databaseRadio','differenceRadio','diskRadio','DDD1','')  
    56.     print '数据库(删除归档)--累积增量增量备份--本地'  
    57.     fun('databaseRadio','accumulationRadio','diskRadio','DAD1','')  
    58.     print '数据库(删除归档)--完全备份--存储服务器'  
    59.     fun('databaseRadio','fullRadio','ftpRadio','DFF1','')  
    60.     print '数据库(删除归档)--差异增量备份--存储服务器'  
    61.     fun('databaseRadio','differenceRadio','ftpRadio','DDF1','')  
    62.     print '数据库(删除归档)--累积增量增量备份--存储服务器'  
    63.     fun('databaseRadio','accumulationRadio','ftpRadio','DAF1','')  
    64.     print '数据库(不删除归档)--完全备份--本地'  
    65.     fun('databaseRadio','fullRadio','diskRadio','DFDn','n')  
    66.     print '数据库(不删除归档)--差异增量备份--本地'  
    67.     fun('databaseRadio','differenceRadio','diskRadio','DDDn','n')  
    68.     print '数据库(不删除归档)--累积增量增量备份--本地'  
    69.     fun('databaseRadio','accumulationRadio','diskRadio','DADn','n')  
    70.     print '数据库(不删除归档)--完全备份--存储服务器'  
    71.     fun('databaseRadio','fullRadio','ftpRadio','DFFn','n')  
    72.     print '数据库(不删除归档)--差异增量备份--存储服务器'  
    73.     fun('databaseRadio','differenceRadio','ftpRadio','DDFn','n')  
    74.     print '数据库(不删除归档)--累积增量增量备份--存储服务器'  
    75.     fun('databaseRadio','accumulationRadio','ftpRadio','DAFn','n')  
    76.   
    77.     #---------------------表空间-----------------------  
    78.     print '表空间(删除归档)--完全备份--本地'  
    79.     fun('tablespaceRadio','fullRadio','diskRadio','TFD1','')  
    80.     print '表空间(删除归档)--差异增量备份--本地'  
    81.     fun('tablespaceRadio','differenceRadio','diskRadio','TDD1','')  
    82.     print '表空间(删除归档)--累积增量增量备份--本地'  
    83.     fun('tablespaceRadio','accumulationRadio','diskRadio','TAD1','')  
    84.     print '表空间(删除归档)--完全备份--存储服务器'  
    85.     fun('tablespaceRadio','fullRadio','ftpRadio','TFF1','')  
    86.     print '表空间(删除归档)--差异增量备份--存储服务器'  
    87.     fun('tablespaceRadio','differenceRadio','ftpRadio','TDF1','')  
    88.     print '表空间(删除归档)--累积增量增量备份--存储服务器'  
    89.     fun('tablespaceRadio','accumulationRadio','ftpRadio','TAF1','')  
    90.     print '表空间(不删除归档)--完全备份--本地'  
    91.     fun('tablespaceRadio','fullRadio','diskRadio','TFDn','n')  
    92.     print '表空间(不删除归档)--差异增量备份--本地'  
    93.     fun('tablespaceRadio','differenceRadio','diskRadio','TDDn','n')  
    94.     print '表空间(不删除归档)--累积增量增量备份--本地'  
    95.     fun('tablespaceRadio','accumulationRadio','diskRadio','TDAn','n')  
    96.     print '表空间(不删除归档)--完全备份--存储服务器'  
    97.     fun('tablespaceRadio','fullRadio','ftpRadio','TFFn','n')  
    98.     print '表空间(不删除归档)--差异增量备份--存储服务器'  
    99.     fun('tablespaceRadio','differenceRadio','ftpRadio','TDFn','n')  
    100.     print '表空间(不删除归档)--累积增量增量备份--存储服务器'  
    101.     fun('tablespaceRadio','accumulationRadio','ftpRadio','TAFn','n')  
    102.   
    103.     #---------------------数据文件---------------------  
    104.     print '数据文件(删除归档)--完全备份--本地'  
    105.     fun('datafileRadio','fullRadio','diskRadio','DFFD1','')  
    106.     print '数据文件(删除归档)--差异增量备份--本地'  
    107.     fun('datafileRadio','differenceRadio','diskRadio','DFDD1','')  
    108.     print '数据文件(删除归档)--累积增量增量备份--本地'  
    109.     fun('datafileRadio','accumulationRadio','diskRadio','DFAD1','')  
    110.     print '数据文件(删除归档)--完全备份--存储服务器'  
    111.     fun('datafileRadio','fullRadio','ftpRadio','DFFF1','')  
    112.     print '数据文件(删除归档)--差异增量备份--存储服务器'  
    113.     fun('datafileRadio','differenceRadio','ftpRadio','DFDF1','')  
    114.     print '数据文件(删除归档)--累积增量增量备份--存储服务器'  
    115.     fun('datafileRadio','accumulationRadio','ftpRadio','DFAF1','')  
    116.     print '数据文件(不删除归档)--完全备份--本地'  
    117.     fun('datafileRadio','fullRadio','diskRadio','DFFDn','n')  
    118.     print '数据文件(不删除归档)--差异增量备份--本地'  
    119.     fun('datafileRadio','differenceRadio','diskRadio','DFDDn','n')  
    120.     print '数据文件(不删除归档)--累积增量增量备份--本地'  
    121.     fun('datafileRadio','accumulationRadio','diskRadio','DFADn','n')  
    122.     print '数据文件(不删除归档)--完全备份--存储服务器'  
    123.     fun('datafileRadio','fullRadio','ftpRadio','DFFFn','n')  
    124.     print '数据文件(不删除归档)--差异增量备份--存储服务器'  
    125.     fun('datafileRadio','differenceRadio','ftpRadio','DFDFn','n')  
    126.     print '数据文件(不删除归档)--累积增量增量备份--存储服务器'  
    127.     fun('datafileRadio','accumulationRadio','ftpRadio','DFAFn','n')  
    128.   
    129.     #---------------------归档日志---------------------  
    130.     print '归档日志(删除归档)--差异增量备份--本地'  
    131.     fun('archivedlogRadio','differenceRadio','diskRadio','ADD1','')  
    132.     print '归档日志(删除归档)--差异增量备份--存储服务器'  
    133.     fun('archivedlogRadio','differenceRadio','ftpRadio','ADF1','')  
    134.     print '归档日志(不删除归档)--差异增量备份--本地'  
    135.     fun('archivedlogRadio','differenceRadio','diskRadio','ADDn','n')  
    136.     print '归档日志(不删除归档)--差异增量备份--存储服务器'  
    137.     fun('archivedlogRadio','differenceRadio','ftpRadio','ADFn','n')  
    138. browser.quit()  
  15. python+HTMLParser+urllib
    1. from HTMLParser import HTMLParser  
    2. from htmlentitydefs import name2codepoint  
    3. import urllib  
    4. class MyHTMLParser(HTMLParser):  
    5.     def handle_starttag(self,tag,attrs):  
    6.         print "Start tag:",tag  
    7.         for attr in attrs:  
    8.             print "      attr:",attr  
    9.     def handle_endtag(self,tag):  
    10.         print "End   tag:",tag  
    11.     def handle_data(self,data):  
    12.         print "Data     :",data  
    13.     def handle_comment(self,data):  
    14.         print "Comment  :",data  
    15.     def handle_entityref(self,name):  
    16.         c = unichr(name2codepoint[name])  
    17.         print "Named ent:",c  
    18.     def handle_decl(self,data):  
    19.         print "Decl     :",data  
    20.   
    21. parser = MyHTMLParser()  
    22. #parser local web html page  
    23. #parser.feed(open("/home/scutech/python/webpage/hello.html").read())   
    24. #parser online web html page  
    25. page = urllib.urlopen('http://localhost/dbackup/UnitManage/UnitMainPage.php')  
    26. da = page.read(page)  
    27. parser.feed(da)  
  16. 在AIX上安装rpm包
    1. import subprocess  
    2. import time  
    3. filename = '/home/shuixian/dbackup-agent-2.2-8722.15.aix5.1.ppc.rpm'  
    4. order = 'sudo rpm -ivh '+filename  
    5. p = subprocess.call(order,shell=True)  
    6. time.sleep(10)  
    7. pp = subprocess.Popen('sudo /usr/sbin/dbackup_agentd config',shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)  
    8. print '0'  
    9. pp.stdin.write('oracle'+'\n')  
    10. print '1'  
    11. time.sleep(2)  
    12. pp.stdin.write('/opt/oracle/product/9.2.0.1.0'+'\n')  
    13. print '2'  
    14. time.sleep(2)  
    15. pp.stdin.write('Y'+'\n')  
    16. print '3'  
    17. time.sleep(2)  
    18. pp.stdin.write('192.168.88.184'+'\n')  
    19. print '4'  
    20. time.sleep(2)  
    21. pp.stdin.write('443'+'\n')  
    22. print '5'  
    23. time.sleep(2)  
    24. pp.stdin.write('Y'+'\n')  
    25. print '6'  
    26. time.sleep(7)  
  17. 在AIX上下载升级rpm包
    1. from ftplib import FTP  
    2. import subprocess  
    3. #********************************ftp上的最新版本*************************  
    4. ftp=FTP('192.168.88.10')  
    5. ftp.login('******','******')  
    6. path='ftp_product_installer/wddps/2013/2.2.15'  
    7. ftp.cwd(path)  
    8. data=[]  
    9. k = []  
    10. fobj=open('/home/shuixian/write','w')  
    11. ftp.retrlines('LIST')  
    12. for name in ftp.nlst():  
    13.     data.append(name)  
    14. for m in range(len(data)):  
    15.     a = '.15.aix5.1.ppc.rpm'  
    16.     b = data[m].find(a)  
    17.     if b > 0:  
    18.         k.append(data[m])  
    19. lastest = k[-1][0:25]        
    20. #********************************本机所安装的版本************************  
    21. proc=subprocess.Popen('rpm -qa|grep dbackup-agent',shell=True,stdout=subprocess.PIPE)  
    22. out,err=proc.communicate()  
    23. newest=out[0:-1]  
    24. #********************************比较两个版本***************************  
    25. c = cmp(newest,lastest)       
    26. Download='/home/shuixian/'+k[-1]  
    27. f = open(Download,'wb')  
    28. #********************************小于0则需要下载升级,大于0则不需要*********  
    29. if c < 0:  
    30.     ftp.retrbinary('RETR '+k[-1],f.write,1024)  
    31. f.close()  
    32. #********************************关闭ftp******************************  
    33. ftp.quit()  
    34. #********************************升级dbackup-agent********************  
    35. order = ‘sudo rpm -Uvh '+Download  
    36. pp = subprocess.call(order,shell=True)  


  18. 整合16、17
    1. import subprocess  
    2. import time  
    3. from ftplib import FTP  
    4.   
    5. def install(filename,order_i,config,ora_home,ip):  
    6.     order = order_i + filename  
    7.     p = subprocess.call(order,shell=True)  
    8.     time.sleep(10)  
    9.     pp = subprocess.Popen(config,shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)  
    10.     pp.stdin.write('oracle'+'\n')  
    11.     time.sleep(2)  
    12.     pp.stdin.write(ora_home + '\n')  
    13.     time.sleep(2)  
    14.     pp.stdin.write('Y'+'\n')  
    15.     time.sleep(2)  
    16.     pp.stdin.write(ip+'\n')  
    17.     time.sleep(2)  
    18.     pp.stdin.write('443'+'\n')  
    19.     time.sleep(2)  
    20.     pp.stdin.write('Y'+'\n')  
    21.     time.sleep(7)  
    22.     print 'Dbackup-agent's installation  successful'   
    23. def upgrade(path,suffix,download,order_u,order_s):  
    24.     ftp=FTP('192.168.88.10')  
    25.     ftp.login('scutech','dingjia')  
    26.     ftp.cwd(path)  
    27.     data=[]  
    28.     k=[]  
    29.     for name in ftp.nlst():  
    30.         data.append(name)  
    31.     for m in range(len(data)):  
    32.         b = data[m].find(suffix)  
    33.         if b > 0:  
    34.             k.append(data[m])  
    35.     lastest=k[-1][0:len(k[-1])-len(suffix)-3]  
    36.     proc=subprocess.Popen(order_s,stdout=subprocess.PIPE,stderr=subprocess.PIPE)  
    37.     out,err=proc.communicate()  
    38.     newest=out[0:-1]  
    39.     c=cmp(newest,lastest)  
    40.     f = open(download + k[-1],'wb')  
    41.     if c < 0:  
    42.         ftp.retrbinary('RETR '+k[-1],f.write,1024)  
    43.     f.close()  
    44.     ftp.quit()  
    45.     pp = subprocess.call(order_u,shell=True)  
    46.     print 'Dbackup-agent upgrade success'  
    47.   
    48. if __name__=="__main__":  
    49.     filename = '/home/shuixian/dbackup-agent-2.2-8722.15.aix5.1.ppc.rpm'  
    50.     order_i = 'sudo rpm -ivh '  
    51.     order_u = 'sudo rpm -Uvh '  
    52.     order_s = 'rpm -qa|grep dbackup-agent'  
    53.     config = 'sudo /usr/sbin/dbackup_agentd config'  
    54.     ora_home = '/opt/oracle/product/9.2.0.1.0'  
    55.     ip = '192.168.88.10'  
    56.     path = 'ftp_product_installer/wddps/2013/2.2.15'  
    57.     suffix = '.15.aix5.1.ppc.rpm'  
    58.     download = '/home/shuixian/'  
    59.     a = subprocess.call(order_s,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)  
    60.     out,err=a.communicate()  
    61.     if len(out)>0:  
    62.         upgrade(path,suffix,download,order_u,order_s)  
    63.     else:  
    64.         install(filename,order_i,config,ora_home,ip)  


  19. 改良17
    1. from ftplib import FTP  
    2. import re  
    3. ftp = FTP('192.168.1.104')  
    4. ftp.login('scutech','dingjia')  
    5. path = '/home/scutech/Downloads'  
    6. ftp.cwd(path)  
    7. data = []  
    8. filename = ''  
    9. for name in ftp.nlst():  
    10.     f = 'dbackup-server-2\.2-....\.15_all\.deb'  
    11.     res = re.search(f,name)  
    12.     if res !=None:  
    13.         filename = name  
    14. print filename  
    15. ftp.quit()  



    1. import os,time  
    2. import subprocess  
    3.   
    4. time2sleep = 2.5  
    5. fobj=open('/tmp/shuixian/write','w')  
    6. while True:  
    7.     print int(time.time())  
    8.     proc=subprocess.Popen('top 0',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)  
    9.     out,err=proc.communicate()  
    10.     fobj.write(out)  
    11.     time.sleep(time2sleep)  
    12. fobj.close()  
    13.   
    14.   
    15. import os,time  
    16. fobj=open('/tmp/shuixian/write','w')  
    17. time2sleep = 2.5  
    18. while True:  
    19.     print int(time.time())  
    20.     out=os.popen('top -bi -n 2 -d 0.02').read()  
    21.     fobj.write(out)  
    22.     print os.popen('top -bi -n 2 -d 0.02').read().split('\n\n\n')[0].split('\n')  
    23.     time.sleep(time2sleep)  
    24.   
    25.   
    26. out = os.popen('top|head -12').read().split('\n\n\n')[0].split('\n')  
    27. tmp11=out[11]  
    28. tmp10 = out[10]  
    29. tmp9 = out[9]  
    30. tmp8 = out[8]  
    31. tmp7 = out[7]  
    32. tmp6 = out[6]  
    33. tmp5 = out[5]  
    34. tmp10=re.search('....%',out[10]).group()  
    35.   
    36.   
    37. import os,time,re  
    38. fobj=open('/tmp/shuixian/write','w')  
    39. i=0  
    40. while i<38:  
    41.     print '***************************************'  
    42.     print i  
    43.     out = os.popen('top|head -12').read().split('\n\n\n')[0].split('\n')  
    44.     llen = len(out)  
    45.     tmp = 0  
    46.     k = 0  
    47.     while k <5:  
    48.         name = re.search('....%',out[llen-k-2]).group()  
    49.         tmp = float(tmp)+float(name[:-1])  
    50.         print tmp  
    51.         k +=1  
    52.     i +=1  
    53.     print tmp  
    54.     mem = re.search('....M f',out[3]).group()[:-2]  
    55.     shijian = re.search('........$',out[0]).group()  
    56.     cpu = str(tmp)  
    57.     result =cpu+'         '+mem+'         '+shijian  
    58.     fobj.write(result)  
    59.     fobj.write('\n')  
    60.     time.sleep(5)  
    61. fobj.close()  
    62.   
    63.   
    64.   
    65.   
    66.   
    67. import os,time,re  
    68. fobj=open('/tmp/shuixian/write','w')  
    69. i=0  
    70. while i<38:  
    71.     print '***************************************'  
    72.     print i  
    73.     out = os.popen('top|head -12').read().split('\n\n\n')[0].split('\n')  
    74.     print out[6]  
    75.     time.sleep(5)  
    76. fobj.close()  
    77.   
    78.   
    79. time.strftime('%H:%M:%S',time.localtime(time.time()))  
    80.   
    81.   
    82. import time,subprocess  
    83. ttime = time.strftime('%H:%M:%S',time.localtime(time.time()))  
    84. print ttime  
    85. fobj=open('/tmp/shuixian/write','w')  
    86. i = 2  
    87. h=float(ttime[:2])  
    88. m=float(ttime[-5:-3])  
    89. s=float(ttime[-2:])  
    90. p=subprocess.Popen('vmstat 3 45',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)  
    91. out,err=p.communicate()  
    92. print out  
    93. print '*******************************************************'  
    94. while i < 29:  
    95.     tmp=out.split('\n')[i].split(' ')  
    96.     ll = len(tmp)  
    97.     if tmp[ll-2] !='':  
    98.         mem = tmp[5]  
    99.         us = tmp[ll-3]  
    100.         sy = tmp[ll-2]  
    101.     else:  
    102.         mem= tmp[5]  
    103.         us = tmp[ll-4]  
    104.         sy = tmp[ll-3]  
    105.     c = cmp(s,60)  
    106.     if c == 1:  
    107.         s = 0  
    108.         m +=1  
    109.     mm = str(m)  
    110.     ss = str(s)  
    111.     if m<10:  
    112.         mm = '0' + str(m)[0]  
    113.     else:  
    114.         mm = str(m)[:2]  
    115.     if s<10:  
    116.         ss = '0' + str(s)[0]  
    117.     else:  
    118.         ss = str(ss)[:2]  
    119.     s +=3  
    120.     i +=1  
    121.     tttime = str(h)[:2]+':'+mm+':'+ss  
    122.     print tttime  
    123.     result = us+'        '+sy+'        '+mem+'        '+tttime+'\n'  
    124.     print result  
    125.     fobj.write(result)  
    126. fobj.close()  
  20. 获取cpu_mem等
    1. import subprocess,time  
    2. fobj=open('/home/tingkai/shuixian/write','w')  
    3. fobj1=open('/home/tingkai/shuixian/us.txt','w')  
    4. fobj2=open('/home/tingkai/shuixian/sy.txt','w')  
    5. fobj3=open('/home/tingkai/shuixian/mem.txt','w')  
    6. fobj4=open('/home/tingkai/shuixian/time.txt','w')  
    7. ttime = time.strftime('%H:%M:%S',time.localtime(time.time()))  
    8. p=subprocess.Popen('vmstat 1 1200',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)  
    9. out=p.communicate()  
    10.   
    11. mem = 'echo \"'+out[0] + " \"| awk '{print $5}'"  
    12. us =  'echo \"'+out[0] + " \"| awk '{print $16}'"  
    13. sy = 'echo \"'+out[0] + " \"| awk '{print $17}'"  
    14. p1=subprocess.Popen(us,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)  
    15. p2=subprocess.Popen(sy,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)  
    16. p3=subprocess.Popen(mem,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)  
    17. pp1=p1.communicate()  
    18. pp2=p2.communicate()  
    19. pp3=p3.communicate()  
    20. i=2  
    21. h=float(ttime[:2])  
    22. m=float(ttime[-5:-3])  
    23. s=float(ttime[-2:])  
    24. while i < 1266:  
    25.     c1=cmp(m,60)  
    26.     c2=cmp(s,60)  
    27.     if c2 == 1:  
    28.         s=0  
    29.         m +=1  
    30.     if c1 == 1:  
    31.         m=0  
    32.         h +=1  
    33.     fobj4.write(str(int(h))+':'+str(int(m))+':'+str(int(s))+'\n')  
    34.     i +=1  
    35.     s +=1  
    36. fobj.write(out[0]+'\n')  
    37. fobj1.write(pp1[0])  
    38. fobj2.write(pp2[0])  
    39. fobj3.write(pp3[0])  
    40. fobj.close()  
    41. fobj1.close()  
    42. fobj2.close()  
    43. fobj3.close()  
    44. fobj4.close()  
  21. 自定义类的调用
    自定义类:(路径:/home/irene/Documents/python/Class/Circle.py)
    1. import math  
    2. class Circle:  
    3.     #Construct a circle object  
    4.     def __init__(self,radius = 1):  
    5.         self.radius = radius  
    6.     def getPerimeter(self):  
    7.         return 2 * self.radius * math.pi  
    8.     def getArea(self):  
    9.         return self.radius * self.radius * math.pi  
    10.     def setRadius(self,radius):  
    11.         self.radius=radius  
    调用类:
    1. import sys  
    2. sys.path.append(r'/home/irene/Documents/python/Class')  
    3. from Circle import Circle  
    4. import time  
    5. print(time.strftime('%H:%M:%S',time.localtime(time.time())))  
    6. c = Circle(5)  
    7. print("Radius:",c.radius)  
    8. print("Perimeter:",c.getPerimeter())  
    9. print("Area:",c.getArea())  

    结果:
    1. 09:54:55  
    2. ('Radius:', 5)  
    3. ('Perimeter:', 31.41592653589793)  
    4. ('Area:', 78.53981633974483)  


  22. ubuntu12.10+python2.7安装cx_Oracle和oracle的客户端
    oracle-client
    下载oracle客户端:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
    我下载的是:oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
    将rpm包装为deb包:sudo alien oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
    安装:sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
    安装之后的默认目录:/usr/lib/oracle/11.2/client64
    添加oracle的环境变量:
    export ORACLE_HOME=/usr/lib/oracle/11.2/client64
    export PATH=$PATH:$ORACLE_HOME/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    source ~/.profile
    创建tnsnames.ora目录并添加编辑该文件:sudo mkdir -p /usr/lib/oracle/11.2/client64/network/admin
    内容:
    ORACLE=
       (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.88.196)(PORT = 1521))
          (CONNECT_DATA =
             (SERVER = DEDICATED)
             (SERVICE_NAME = oracle10g)
          )
       )
    cx_Oracle
    下载cx_Oracle:http://sourceforge.net/projects/cx-oracle/files/5.1.2/cx_Oracle-5.1.2-11g-py27-1.x86_64.rpm 
    下载之后解压,在当前目录下发现一个usr文件夹,将此文件夹下的cx_Oracle.so拷贝到/usr/local/lib/python2.7/dist-packages
    cp /home/irene/Downloads/usr/lib/python2.7/site-packages/cx_Oracle.so /usr/local/lib/python2.7/dist-packages/
    实践:
    python
    >>import cx_Oracle
    >>conn = conn("system/password@192.168.88.196:1521@oracle10g")
    大功告成!!
    借鉴:http://linux.chinaitlab.com/set/890093.html
  23. shell+python实现oracle自动导出
    1. exp.sh  
    2. cmd='exp scott/dingjia@ora10g tables=one file=/home/oracle/Desktop/backup/one.dmp'  
    3. log_file='/home/oracle/Desktop/backup/exp.log'  
    4. echo $cmd>>$log_file  
    5. `$cmd`  
    6. sleep 10  
    1. exp.py  
    2. import subprocess,time  
    3. order = '/home/oracle/Desktop/backup.exp.sh'  
    4. i = 0  
    5. while i<5:  
    6.     p = subprocess.Popen(order,shell=True)  
    7.     print '============'+str(i)+'=========='  
    8.     i += 1  
    9.     time.sleep(60)  


  24. Date格式化输出
    1. [root@root ~]# date "+%Y-%m-%d"  
    2. 2013-02-19  
    3. [root@root ~]# date "+%H:%M:%S"  
    4. 13:13:59  
    5. [root@root ~]# date "+%Y-%m-%d %H:%M:%S"  
    6. 2013-02-19 13:14:19  
    7. [root@root ~]# date "+%Y_%m_%d %H:%M:%S"    
    8. 2013_02_19 13:14:58  
    9. [root@root ~]# date -d today   
    10. Tue Feb 19 13:10:38 CST 2013  
    11. [root@root ~]# date -d now  
    12. Tue Feb 19 13:10:43 CST 2013  
    13. [root@root ~]# date -d tomorrow  
    14. Wed Feb 20 13:11:06 CST 2013  
    15. [root@root ~]# date -d yesterday  
    16. Mon Feb 18 13:11:58 CST 2013  


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值