• python常用模块


    常用字符串的方法
    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里面的元素顺序

  • 相关阅读:
    ORA-02020 : 过多的数据库链接在使用中-Windows环境解决步骤
    <转载>c++中new一个二维数组
    C C++输出格式 <转载>仅用于个人
    *p 和p[i] 区别
    Const *ptr ptr
    C 格式化的输入输出(printf scanf)
    PP 各种快捷键
    【Java并发工具类】原子类
    【Java并发工具类】Java并发容器
    【Java并发工具类】CountDownLatch和CyclicBarrier
  • 原文地址:https://www.cnblogs.com/jaigejiayou/p/13473002.html
Copyright © 2020-2023  润新知