打印乘法口訣表
#!/usr/bin/python #coding=utf-8 print("Hello,World....") print("你好,歡迎來到Python的世界....") i=1; while i <= 9 : #print i j=1 while j <= i: #print i,j print "%d*%d=%d"%(j,i,j*i), j+=1 print('\n') i+=1
結果:
Python文件處理
#!/usr/bin/python #coding=utf-8 import sys import os import shutil #創建目錄 def mkdir(path): #去除首位空格 path = path.strip() #去除尾部\符號 path = path.rstrip('\\') #判斷路徑是否存在 isExists = os.path.exists(path) if not isExists: os.makedirs(path) #寫文件 def Write(filename,context,model): #去除首位空格 filename = filename.strip() #讀取目錄名稱 path = os.path.dirname(filename) #如果目錄不存在則創建目錄 mkdir(path) #讀取文件名稱 name = os.path.basename(filename) fp = open(filename,model) fp.write(context+'\n') fp.close() print name #刪除文件 def deleteFile(filename): filename = filename.strip() if os.path.exists(filename): os.remove(filename) #刪除目錄 def deleteDir(path,model): if os.path.exists(path): if model == 'rf': #強制刪除目錄以及目錄下所有文件 shutil.rmtree(path) else: #只有目錄為空的時候才可以刪除 os.removedirs(path) mkdir('/etl/etldata/tmp/p') deleteDir('/etl/etldata/tmp','rf') mkdir('/etl/etldata/script/python/test') Write('/etl/etldata/script/python/p/testfile.csv','1','w'); Write('/etl/etldata/script/python/p/testfile.csv','2','a'); #deleteFile('/etl/etldata/script/python/p/testfile.csv') deleteDir('/etl/etldata/script/python/p','rf') #deleteDir('/etl/etldata/script/python1/test','rf')
Python面向對象
#定義Student類 class Student: #定義getName方法,獲取姓名 def getName(self): print("My Name is Jim") #定義getAge方法,獲取年齡 def getAge(self): print("My Age is 18") #實例化一個對象 s = Student() s.getName() s.getAge() #添加屬性 s.addres = '大連' #獲取屬性 print(s.addres)
#coding:utf-8 #print("Hello,world") #定義Student類 class Student: #定義初始化函數 def __init__(self,name="InitName",weight=60,height=170): self.name = name self.weight = weight self.height = height self.age = 18.6 def __str__(self): return self.name #定義getName方法,獲取姓名 def getName(self): print("My Name is %s" % (self.name) ) #定義getAge方法,獲取年齡 def getAge(self): print("My Age is %f" % (self.age)) #實例化一個對象 s = Student('Jim') print type(s) s.getName() s.getAge() print(s.weight) print(s)
#coding:utf-8 import xlrd import os import sys import cx_Oracle import time import sys import codecs import shutil reload(sys) sys.setdefaultencoding('utf-8') #定義連接oracle數據庫函數 def conn_orcl(hostname='192.168.0.18',user='jim',passwd='jim',database='orcl'): print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),": Start connect to Oracle..." #user #passwd #hostname = 192.168.0.18 #database = 'orcl' conn_str=user+'/'+passwd+'@'+hostname+'/'+database try: conn = cx_Oracle.connect(conn_str) #conn = cx_Oracle.connect('scott/tiger1@192.168.0.18/orcl') print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),": connect to %s Succeed" % (database) return conn except: print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),": Connect to %s Failed" % (database) return #執行sql語句【增加、刪除、修改】 def sqlDML(sql,db): #include: insert,update,delete cr = db.cursor() try: cr.execute(sql) cr.close() db.commit() print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),": Excute Succeed" except: print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),": Excute Failed" #查詢語句,返回元組tuple def sqlSelect(sql,db): c = db.cursor() try: c.execute(sql) print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),": Excute Succeed" return c except: print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),": Excute Failed" return #創建目錄 def mkdir(path): #去除首位空格 path = path.strip() #去除尾部\符號 path = path.rstrip('\\') #判斷路徑是否存在 isExists = os.path.exists(path) if not isExists: os.makedir(path) #遞歸創建目錄 def mkdirs(path): #去除首位空格 path = path.strip() #去除尾部\符號 path = path.rstrip('\\') #判斷路徑是否存在 isExists = os.path.exists(path) if not isExists: os.makedirs(path) #刪除目錄 def rmdir(path): #去除首位空格 path = path.strip() #去除尾部\符號 path = path.rstrip('\\') #判斷路徑是否存在 isExists = os.path.exists(path) if isExists: os.rmdir(path) #遞歸刪除目錄 def rmdirs(path): #去除首位空格 path = path.strip() #去除尾部\符號 path = path.rstrip('\\') #判斷路徑是否存在 isExists = os.path.exists(path) if isExists: #os.removedirs(path) shutil.rmtree(path) #刪除文件 def deleteFile(filename): filename = filename.strip() if os.path.exists(filename): os.remove(filename) #寫文件 def writeText(filename,context,model): #去除首位空格 filename = filename.strip() #讀取目錄名稱 path = os.path.dirname(filename) #如果目錄不存在則創建目錄 mkdir(path) #讀取文件名稱 name = os.path.basename(filename) fp = open(filename,model) fp.write(context+'\n') fp.close() def excel_to_csv(exclefilename,sheetname,csvfilename): data = xlrd.open_workbook(exclefilename) table = data.sheet_by_name(sheetname) print "excel文件為:%s" % (exclefilename) print "sheet頁名稱為:%s" %(sheetname) #獲取行數和列數 nrows = table.nrows print "行數:",nrows ncols = table.ncols print "列數:", ncols #定義分割符 format = ',' #先刪除目標csv文件 deleteFile(csvfilename) #默認去掉首行標題 for i in range(1,nrows): s='' for j in range(0,ncols): s = s + str(table.row_values(i)[j]) + format #print table.row_values(i)[j] #print s #保存成csv文件 writeText(csvfilename,s,'a') print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),": translate %s to %s Succeed" % (exclefilename,csvfilename) #print table.row_values(i)[0] #將數據文件加載到oracle數據庫中 def load_to_db(db,filename,tabname,colnum): s='' for i in range(1,colnum+1): if i == colnum: s = s + ':' + str(i) else: s = s + ':' + str(i) + ',' sql = 'insert into %s values(%s)' %(tabname,s) print sql cr = db.cursor() f = codecs.open(filename) lines = f.readlines() for i in range(0,len(lines)): s = [] for j in range(0,colnum): s.append(str(lines[i].strip("\n").split(',')[j])) #print s[j] #lines[i].strip("\n").split(',')[0] cr.execute(sql,s) #print s f.close() cr.close() db.commit() excel_to_csv('/etl/etldata/script/car/20170920.xlsx','標簽','/etl/etldata/script/python_test/lab.csv') db = conn_orcl('192.168.11.43','jim','jim') sql = 'delete from car_lab' sqlDML(sql,db) load_to_db(db,'/etl/etldata/script/python_test/lab.csv','car_lab',12) #db = conn_orcl('192.168.11.43','jim','jim') #sql = 'create table car_info_1 as select * from car_info where 1=2' #sql = 'select * from car' #c = sqlSelect(sql,db) #print type(c) #excel_to_csv('/etl/etldata/script/car/20170919.xlsx','太平洋汽車','/etl/etldata/script/python_test/lab.csv') ''' for x in c : #返回的是元組tuple print type(x),len(x) print x[0],x[1],x[2],x[3] ''' #sqlDML(sql,db) #data = xlrd.open_workbook('car.xlsx') #通過名稱獲取 #table = data.sheet_by_name(u'Sheet3') #通過索引順序獲取 #table = data.sheets()[0] #通過索引順序獲取 #table = data.sheet_by_index(0) #獲取整行和整列的值(數組) #table.row_values(i) #table.col_values(i) #獲取行數和列數 #nrows = table.nrows #ncols = table.ncols
Python常用函數收集匯總:
#coding:utf-8 #filename:tools.py #pyton常用函數收集匯總 import time import sys import os import shutil reload(sys) sys.setdefaultencoding( "utf-8" ) #獲取常用時間格式的函數 #'%Y-%m-%d' 2017-11-18 #'%Y%m%d' 20171118 #%Y%m%d%H' 2017111817 #空或其他 2017-11-18 17:26:35 def getTime(*format): now = '' try: format = format[0] except : pass if format == '%Y-%m-%d': now = time.strftime('%Y-%m-%d',time.localtime(time.time())) elif format == '%Y%m%d': now = time.strftime('%Y%m%d',time.localtime(time.time())) elif format == '%Y%m%d%H': now = time.strftime('%Y%m%d%H',time.localtime(time.time())) else : now = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) return now #創建目錄 def mkdir(path): #去除首位空格 path = path.strip() #去除尾部\符號 path = path.rstrip('\\') #判斷路徑是否存在 isExists = os.path.exists(path) if not isExists: os.makedirs(path) #寫字符到到文件中 def writeFile(filename,context,model): #去除首位空格 filename = filename.strip() #讀取目錄名稱 path = os.path.dirname(filename) #如果目錄不存在則創建目錄 mkdir(path) #讀取文件名稱 name = os.path.basename(filename) fp = open(filename,model) fp.write(context+'\n') fp.close() #print name #刪除文件 def deleteFile(filename): filename = filename.strip() if os.path.exists(filename): os.remove(filename) #刪除目錄 def deleteDir(path,model): if os.path.exists(path): if model == 'rf': #強制刪除目錄以及目錄下所有文件 shutil.rmtree(path) else: #只有目錄為空的時候才可以刪除 os.removedirs(path) #判斷文件是否存在 def isExistsFile(filename): result = False result = os.path.isfile(filename) return result #讀取文件內容 def getLines(filename): file_object = open(filename,'rb') lines = file_object.readlines() return lines #獲取本身腳本名稱 def getSelfName(): return sys.argv[0] print getSelfName()
from selenium import webdriver from pyquery import PyQuery as pq #獲取網頁 urllib2獲取 def getHtml(url): request = urllib2.Request(url) response = urllib2.urlopen(request,data=None) #html = unicode(response.read(),'utf-8') html = unicode(response.read(),'gbk') return html #獲取網頁 PhantomJS獲取 def getHtml2(url): driver = webdriver.PhantomJS(executable_path='/home/shutong/phantomjs/bin/phantomjs') driver.get(url) html = driver.page_source driver.quit() return html
Python操作phantomjs
#coding:utf-8 import os import re import sys import time sys.path.append('/home/shutong/crawl/script/media') from tools import * #import tushare as ts from selenium import webdriver from selenium.webdriver.common.keys import Keys reload(sys) sys.setdefaultencoding('utf-8') driver = webdriver.PhantomJS() url = "https://www.baidu.com/" driver.get(url) driver.get_screenshot_as_file('1.png') elem = driver.find_element_by_id("kw") elem.send_keys(u"北京") driver.get_screenshot_as_file('2.png') elem.send_keys(Keys.RETURN) time.sleep(5) driver.refresh() driver.get_screenshot_as_file('3.png')
Python常用工具函數
#coding:utf-8 #filename:tools.py #pyton常用函數收集匯總 import time import sys import os import shutil import MySQLdb import urllib2 from pyquery import PyQuery as pq from lxml import etree import urllib import sys import httplib import datetime import json from selenium import webdriver from urlparse import urljoin httplib.HTTPConnection._http_vsn = 10 httplib.HTTPConnection._http_vsn_str = 'HTTP/1.0' #設置utf-8模式 reload(sys) sys.setdefaultencoding( "utf-8" ) #獲取常用時間格式的函數 #'%Y-%m-%d' 2017-11-18 #'%Y%m%d' 20171118 #%Y%m%d%H' 2017111817 #空或其他 2017-11-18 17:26:35 def getTime(*format): now = '' try: format = format[0] except : pass if format == '%Y-%m-%d': now = time.strftime('%Y-%m-%d',time.localtime(time.time())) elif format == '%Y%m%d': now = time.strftime('%Y%m%d',time.localtime(time.time())) elif format == '%Y%m%d%H': now = time.strftime('%Y%m%d%H',time.localtime(time.time())) else : now = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) return now #創建目錄 def mkdir(path): #去除首位空格 path = path.strip() #去除尾部\符號 path = path.rstrip('\\') #判斷路徑是否存在 isExists = os.path.exists(path) if not isExists: #os.mkdirs(path) os.makedirs(path) #寫文件 def Write(filename,context,model): #去除首位空格 filename = filename.strip() #讀取目錄名稱 path = os.path.dirname(filename) #如果目錄不存在則創建目錄 mkdir(path) #讀取文件名稱 name = os.path.basename(filename) fp = open(filename,model) fp.write(context+'\n') fp.close() #print name #寫字符到到文件中 def writeFile(filename,context,model): #去除首位空格 filename = filename.strip() #讀取目錄名稱 path = os.path.dirname(filename) #如果目錄不存在則創建目錄 mkdir(path) #讀取文件名稱 name = os.path.basename(filename) fp = open(filename,model) fp.write(context+'\n') fp.close() #print name #刪除文件 def deleteFile(filename): filename = filename.strip() if os.path.exists(filename): os.remove(filename) #刪除目錄 def deleteDir(path,model): if os.path.exists(path): if model == 'rf': #強制刪除目錄以及目錄下所有文件 shutil.rmtree(path) else: #只有目錄為空的時候才可以刪除 os.removedirs(path) #判斷文件是否存在 def isExistsFile(filename): result = False result = os.path.isfile(filename) return result #讀取文件內容 def getLines(filename): file_object = open(filename,'rb') lines = file_object.readlines() return lines #處理字符 def repstr(name): name = str(name).replace('(','(').replace(')',')').replace(',',':') return str(name).strip() #保存字符串 def saveFile(filename,*name): format = ',' context = repstr(name[0]) for i in name[1:]: context = context + format + repstr(i) Write(filename,context,'a') #保存字符串 def saveFile2(filename,*name): format = ',' context = name[0] for i in name[1:]: context = context + format + str(i) context = str(context).replace('(','(').replace(')',')') Write(filename,context,'a') #給數組去重 def uniqList(v_list): return list(set(v_list)) #獲取網頁函數1 def getHtml(url,*code): headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'} request = urllib2.Request(url,headers=headers) response = urllib2.urlopen(request,data=None,timeout=60) if code: if code[0] == 'gbk': html = unicode(response.read(),'gbk') else: html = unicode(response.read(),str(code[0])) else: html = unicode(response.read(),'utf-8') return html #獲取網頁函數2 def getHtml_JS(url,*path): driver = '' if path: print path[0] driver = webdriver.PhantomJS(executable_path=path[0]) else: driver = webdriver.PhantomJS(executable_path='/home/shutong/phantomjs/bin/phantomjs') #driver.set_page_load_timeout(60) driver.get(url) html = driver.page_source driver.quit() return html #定義MySql數據庫連接 def conn_mysql(host='192.168.11.43',user='root',passwd='root',db='edw'): conn = '' try: conn= MySQLdb.connect( host= host, port = 3306, user=user, passwd=passwd, db =db, ) #print "連接mysql成功" except : #pass print "連接mysql失敗" return conn #執行sql語句返回結果 def excute_sql(conn,sql): #conn = conn_mysql(host='192.168.122.194',user='root',passwd='123456',db='label') cur = conn.cursor() cur.execute('set character_set_client = utf8') cur.execute('set character_set_server = utf8') cur.execute('set character_set_connection = utf8') cur.execute('set character_set_results = utf8') cur.execute('set collation_connection = utf8_general_ci') cur.execute('set collation_server = utf8_general_ci') result = cur.fetchmany(cur.execute(sql)) cur.close() conn.commit() conn.close() return result #處理url def process_url(url,url_value): if url_value.startswith('http://'): pass else: url_value = urljoin(url,url_value) return str(url_value) #參數: #1.filename 輸出文件 #2.industry_id 行業ID #3.url_type_id #4.v_url_name #5.v_url_value #6.web_type_id pc端[0]/移動端[1] def process_data(inputfile,outputfile,industry_id,url_type_id,v_url_name,v_url_value,web_type_id): for line in getLines(inputfile): line = line.strip() url_name = '' url_value = '' web_type_id = str(web_type_id) web_name_id = line.split(',')[-2] date_id = line.split(',')[-1] #開始處理數據 url_name = line.split(',')[v_url_name] url_value = str(line.split(',')[v_url_value]).replace('http://','') saveFile(outputfile,industry_id,url_type_id,url_name,url_value,web_type_id,web_name_id,date_id) #獲取本身腳本名稱 def getSelfName(): return sys.argv[0]