常用字符串的方法
decode
encode
startswith
endswith
len
isdigit
join
strip
index
lower
love="I love Java"
print(love.replace("Java","Python"))
print(love.upper())
print(love.lower())
print("i love you".capitalize())#首字母大写
print(love.startswith('i'))
list1=["I","love","python"]
print ("".join(list1))#连接字符串
love.index("o")
常用的列表方法
append
extend
count
insert
pop
remove
reverse
sort
len
为什么有list还要用元组?
1.元组可以作为字典的key,而list不可以
2.元组访问速度快
常用方法:count,index
模块:
1.文件读写
文件实例常用方法;
with open("a.txt",'r') as f:
open 打开文件
f.read():一次性读取文件全部内容
f.readline():执行一次这个函数读取一行
f.readlines():一次性读取文件全部内容,并放到一个列表里面,每行是一个列表元素
f.write():写入内容到文件,不换行
f.writelines():把一个列表里面所有元素写入到文件,不换行
f.flush():即时把缓存中的数据输出到文件(不等句柄关闭)
f.close()关闭
对于大文件的某一行或你只需要一行,用linecache模块
2. OS
常用方法:
os.listdir():返回指定目录下的所有文件和目录名。不包括子目录
os.getcwd():返回当前python进程正在工作的目录
os.stat(file):获得文件熟悉,文件大小,创建时间,最后访问时间
os.removedirs("/home/test/"):删除多个目录,os.remove()删除目录
os.system():运行shell命令
os.path.join(path,name):连接目录与文件名或目录
os.mkdir(name):创建目录,os.mkdirs(/name1/name2):创建多级目录
os.path.basename(path):返回路径最后的文件名,纯路径没有文件则返回空
os.chdir(path):改变目录
os.path.exists(path):判断该路径是否存在
os.path.isfile(path)
实践:
1.查找/tomcat/log/目录下的log文件,如果文件最后修改时间在1小时之前,把此文件打包压缩,备份都/home/back/log目录下
2.在linux下每隔1分钟检查一下tomcat进程是不是在运行,如果tomcat进程退出了,立即启动tomcat进程
3.搜索目录/home/tools/下所有以test开头,py结尾的文件(包括子目录的),把文件全路径输出到一个列表里面打印出来
3.sys模块
常用方法:
sys.path:返回当前pythonpath的列表
sys.path.append(name):把自己写的Python库放到pythonpath里去
sys.argv:获取命令行参数
sys.exit:退出当前python进程
sys.platform:获取当前系统平台,如win32,linux等
sys.stdin:标准输入流
sys.stdout: 标准输出流,sys.stdout.write()=print()
sys.stderr: 标准错误流
sys模块实践:
1.启动一个python脚本run.py,传入参数为/homt/tools/src,把/home/tools/src加入到Python path
列表信息,如果此目录下没有任何py文件,程序异常退出
##run.py:
import sys
for i in sys.path:
if os.path.isfile
return None
sys.path.append("/home/tools/src/")
2.把上面的脚本输出信息通过sys.stdout重定向到log.txt
f=open(log.txt,'w')
sys.stdout=f
print(sys.path)
4.time/datetime模块
time常用方法:
time.time():获取1970.1.1.0:0:0到当前的时间
time.localtime():获取本地时间
time.gmtime():获取格里尼治时间
time.strftime("%y/%m%d %H:%M"):格式化时间格式
time.strftime("%Y-%m-%d %H:%M:%S %Z")
time.strftime("%c")
time.strptime("1 Jan 2018 1:30pm","%d %b %Y %I:%M%p"):字符串时间格式转化为时间
time.mktime():将时间元组转化为1970/1/1 0:0:0到目前的时间值
datetime.timedelta:计算两个datetime对象的时间差
datetime.now()
def time_delta():
from datetime import datetime
from datetime import timedelta
d1=datetime.strptime('2017-12-05 17:41:20',"%Y-%m-%d %H:%M:%S")
d2=datetime.strptime('2017-12-03 19:10:28',"%Y-%m-%d %H:%M:%S")
delta=d1-d2
print delta
#后三天
now=datetime.now()
days_delta=timedelta(days=3)
print(now+days_delta)
#几小时后
hours_delta=timedelta(hours=0.5)
print(now+hours_delta)
#几分钟后
mins_delta=timedelta(minutes=10)
print(now+mins_delta)
time/datetime实践
将日志中
DEBUG 180106 21:58:51,607 Receiver_1#....
....
....
DEBUG 180106 21:59:38,908 Receiver_4#.....
计算出处理这个事务所花费的时间
1. 将字符串转化为时间
2.计算时间差
5.commands/subprocess模块
commands一般用于linux:
常用方法:
commands.getoutput(command):获取命令执行后的输出结果
ls_com=commands.getoutput("ls -al")
print(ls_com)
commands.getstatus(command):获取命令执行后的返回状态码
commands.getstatusoutput(command):返回一个元组,第一个元素是状态码,第二个元素是输出结果
subprocess可用在window和linux
常用方法:
subprocess.call(command.shell=True):执行windows下命令,返回执行状态和结果
subprocess.check_call(command.shell=True):执行windows下命令,返回执行状态和结果
subprocess.check_output(command.shell=True):返回执行命令后的输出
eg:
subprocess.call("ipconfig -all")
subprocess.check_call("path", shell=True)
commands/subprocess实践
1. 通过windows下的ping命令,得出www.testerhome.com的服务器ip地址
2. 通过python启动一个windows应用程序
3. 在linux下启动tomcat进程,并判断tomcat启动是否成功
6.logging模块
import logging
from logging.handlers import RotatingFileHandler
def log_basic():
#CRITICAL 50;ERROR 40;WARNING 30;DEBUG 20;INFO 10;NOSET 0.
logging.basicConfig(filename="web.log", level=0,
format='%(asctime)s %(name)s %(levelname)s %(module)s:%(linno)d %(message)s')
#logging.basicConfig(stream=sys.stdout,, level=ine(sys.cfg.get('sysparm','log_level')),
# format='%(asctime)s %(name)s %(levelname)s %(module)s:%(linno)d %(message)s')
logging.getLogger("paramiko").setLevel(logging.WARNING)
logging.getLogger("selenium").setLevel(logging.WARNING)
logging.debug("this is debug log")
logging.info("test info log")
def log_rotate():
#CRITICAL 50;ERROR 40;WARNING 30;DEBUG 20;INFO 10;NOSET 0.
format='%(asctime)s %(name)s %(levelname)s %(module)s:%(linno)d %(message)s''
logging.basicConfig( level=20,
format='%(asctime)s %(name)s %(levelname)s %(module)s:%(linno)d %(message)s')
#定义RotatingFileHandler,日志文件大小超过10M时进行旋转,最大5个备份日志文件
rotateHandler = RotatingFileHandler('you.log',maxBytes=1024*0.01,backupCount=5)
rotateHandler.setFormatter(logging.Formatter(format))
logging.getLogger("").addHanlder(rotateHandler)
logging.getLogger().propagate=False
logging.info("my log"*500)
logging实践
在不同模块中输出log信息到同一个文件test.log上,要求log输出不同级别的log,包括输出异常信息到log文件
7.ConfigParse模块
用了解析.ini文件
ini文件格式
[tomcat_server]
ip_address:192.168.22.10
account:testerhome
password:123456
Config实例常用方法:
config.get('Section','option'):获取指定section下对应option的值
config.sections():获取配置文件中所有的sections
config.has_section('section'):判断配置文件中是否有对应section
config.has_option('section','option'):判断对应section是否有对应的option
8.MySQLdb/pymysql模块
常用方法:
conn=pymysql.connect 建立和mysql数据库的连接
cursor=conn.cursor() 通过上一步建立的连接获取个cursor对象
cursor.execute(sql) 执行sql语句,但返回结果不是sql执行的结果,是此sql执行后影响的行数
cursor.fetchall() 获取sql执行的所有结果,返回结果是个嵌套的元组
cursor.fetchone() 获取sql执行的结果,只获取第一条
cursor.close(),conn.close():关闭连接和cursor
实践:
连接测试数据库,对其中某个表分别指向select,update,insert,delete语句
7.shutil模块
常用方法:
shutil.copy(src,dst): 复制文件,dst可以是目录,也可以是被复制后带文件名的全路径,
比如dst=/home/testerhome/,或home/testerhome/newfile.txt
shutil.copytree(src,dst): 复制目录包括子目录到目标目录
shutil.rmtree(path):删除目录包括子目录
shutil.move(src,dst):移动源目录包括子目录的文件到目标目录
shutil.make_archive(base_name,format):打包压缩文件
8.re模块
常用方法:
re.compile(pattern[,flags])把正则表达式语法转化成正则表达式对象
re.search(pattern,string[,flags])查找匹配的子串,没有则返回None
re.match(pattern,string[,flags])
re.findall()显示出字符串中模式的所有匹配项
9.json模块
json.dumps()将python对象转化为json字符串
json.load() 将json字符串转化为python对象
10.random模块
random.random() 0-1之间的浮点数
random.randint(a,b) a-b之间的整数
random.choice(seq)随机获取seq中的一个元素
random.sample(seq, k):随机获取seq中的k个元素
random.shuffle(list):打乱list里面的元素顺序