zoukankan      html  css  js  c++  java
  • Python-模块

    OS模块功能:提供对操作系统的接口
     
    *  os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
    os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
    os.curdir 返回当前目录: ('.')
    os.pardir 获取当前目录的父目录字符串名:('..')
    os.makedirs('dirname1/dirname2') 可生成多层递归目录
    os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
    os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
    os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
    os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
    os.remove() 删除一个文件
    os.rename("oldname","newname") 重命名文件/目录
    os.stat('path/filename') 获取文件/目录信息
    os.sep 输出操作系统特定的路径分隔符,win下为"",Linux下为"/"
    os.linesep 输出当前平台使用的行终止符,win下为" ",Linux下为" "
    os.pathsep 输出用于分割文件路径的字符串
    os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
    os.system("bash command") 运行shell命令,直接显示
    os.environ 获取系统环境变量
    * os.path.abspath(path) 返回path规范化的绝对路径
    os.path.split(path) 将path分割成目录和文件名二元组返回
    * os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
    os.path.basename(path) 返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素
    os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
    os.path.isabs(path) 如果path是绝对路径,返回True
    os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
    os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
    * os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
    os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
    os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间

    Sys模块:与Python解释器进行交互

    sys.argv 命令行参数List,第一个元素是程序本身路径
    sys.exit(n) 退出程序,正常退出时exit(0)
    sys.version 获取Python解释程序的版本信息
    sys.maxint 最大的Int值
    sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
    sys.platform 返回操作系统平台名称
    sys.stdout.write('please:')
    val = sys.stdin.readline()[:-1]
    1 import os
    2 import sys
    3 
    4 base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    5 print(base_dir)
    6 sys.path.append(base_dir)
    hashlib模块:加密(MD5,SHA,SSL)

    转自:https://www.cnblogs.com/yuanchenqi/articles/5732581.html

    logging模块
    默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET),
    默认的日志格式为日志级别:Logger名称:用户输出消息。

    可见在logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有
    filename:用指定的文件名创建FiledHandler(后边会具体讲解handler的概念),这样日志会被存储在指定的文件中。
    filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
    format:指定handler使用的日志显示格式。
    datefmt:指定日期时间格式。
    level:设置rootlogger(后边会讲解具体概念)的日志级别
    stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件(f=open('test.log','w')),默认为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。

    format参数中可能用到的格式化串:
    %(name)s Logger的名字
    %(levelno)s 数字形式的日志级别
    %(levelname)s 文本形式的日志级别
    %(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
    %(filename)s 调用日志输出函数的模块的文件名
    %(module)s 调用日志输出函数的模块名
    %(funcName)s 调用日志输出函数的函数名
    %(lineno)d 调用日志输出函数的语句所在的代码行
    %(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
    %(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
    %(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
    %(thread)d 线程ID。可能没有
    %(threadName)s 线程名。可能没有
    %(process)d 进程ID。可能没有
    %(message)s用户输出的消息

     1 #__author:"Mark~Panda"
     2 #date:2018/1/15
     3 
     4 import logging
     5 # logging.debug('debug message')
     6 # logging.info('info message')
     7 # logging.warning('warning message')
     8 # logging.error('error message')
     9 # logging.critical('critical message')
    10 #
    11 # logging.basicConfig(level=logging.DEBUG,
    12 #                     format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
    13 #                     datefmt='%a, %d %b %Y %H:%M:%S',
    14 #                     filename='test.log',
    15 #                     filemode='w')
    16 # logging.debug('debug message')
    17 # logging.info('info message')
    18 # logging.warning('warning message')
    19 # logging.error('error message')
    20 # logging.critical('critical message')
    21 
    22 
    23 
    24 
    25 
    26 #既要要屏幕输出,又要在文件中输出,就使用logger对象
    27 logger = logging.getLogger()
    28 # 创建一个handler,用于写入日志文件
    29 fh = logging.FileHandler('test.log')
    30 
    31 # 再创建一个handler,用于输出到控制台
    32 ch = logging.StreamHandler()
    33 
    34 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    35 
    36 fh.setFormatter(formatter)
    37 ch.setFormatter(formatter)
    38 
    39 logger.addHandler(fh) #添加到文件输出对象 #logger对象可以添加多个fh和ch对象
    40 logger.addHandler(ch) #添加到屏幕输出对象
    41 
    42 logger.setLevel(logging.DEBUG)
    43 
    44 logger.debug('logger debug message')
    45 logger.info('logger info message')
    46 logger.warning('logger warning message')
    47 logger.error('logger error message')
    48 logger.critical('logger critical message')


    ConfigParser模块:用于生成和修改常见的配置文档,Python3中模块名改为configparser
     1 #用于生成和修改常见的配置文档
     2 import configparser
     3 
     4 config = configparser.ConfigParser()
     5 
     6 '''
     7 #写入的第一种方法
     8 config["DEFAULT"] = {'ServerAliveInterval': '45',
     9                      'Compression': 'yes',
    10                      'CompressionLevel': '9'}
    11 
    12 config['bitbucket.org'] = {'User':'hg'}
    13 
    14 #第二种方法
    15 config['topsecret.server.com'] = {}
    16 topsecret = config['topsecret.server.com']
    17 topsecret['Host Port'] = '50022'  # mutates the parser
    18 topsecret['ForwardX11'] = 'no'  # same here
    19 
    20 #第三种方法
    21 config['DEFAULT']['ForwardX11'] = 'yes'
    22 
    23 #写入
    24 with open('example.ini', 'w') as configfile:
    25     config.write(configfile)
    26 '''
    27 
    28 #读取内容
    29 config.read('example.ini')
    30 # print(config.sections())
    31 # print(config.defaults())
    32 #
    33 # print(config['DEFAULT']['ForwardX11'])
    34 
    35 # for key in config:
    36 #     print(key)
    37 
    38 # for key in config['bitbucket.org']:
    39 #     print(key)
    40 
    41 
    42 #删除
    43 config.remove_section('topsecret.server.com')
    44 
    45 # #有没有这个字符串
    46 # c = config.has_section('topsecret.server.com')
    47 # print(c)
    48 #
    49 # #修改
    50 # config.set('bitbucket.org','user','alex')
    51 #
    52 #
    53 # #删除
    54 # config.remove_option('bitbucket.org','user')
    55 
    56 config.write(open('c','w'))
    
    
    
     
    Re模块:
      
    正则表达式:匹配字符串
    字符串提供的方法是完全匹配,因此用到正则表达式
    通过re模块实现

    字符匹配(普通字符,元字符)

    元字符: ^ . $ * + ? {} [] |或 ()


    .通配符,只能代指任意一个字符,除了换行符
    ^只在开始匹配
    $只在结束匹配
    * 重复匹配[0,+]
    + 重复匹配[1,+]
    ? 匹配[0,1]
    {} 匹配任意个数,里面可以加范围
    [] 字符集:或的关系 还可以取消元字符的特殊功能( ^ -)例外
    ^放在[]里面,取反
    1>反斜杠后边跟元字符去除特殊功能,比如.
    2>反斜杠后边跟普通字符实现特殊功能,比如d
    () 分组

    反斜杠后边跟元字符去除特殊功能,比如.
    反斜杠后边跟普通字符实现特殊功能,比如d
    d 匹配任何十进制数;它相当于类 [0-9]。
    D 匹配任何非数字字符;它相当于类 [^0-9]。
    s 匹配任何空白字符;它相当于类 [ fv]。
    S 匹配任何非空白字符;它相当于类 [^ fv]。
    w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。
    W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]
     匹配一个特殊字符边界,比如空格 ,&,#等

    正则表达式的方法:
    findall() 所有的结果都返回到一个列表里
    search() 返回匹配到的第一个对象(object),对象可以钓鱼group()方法来拿取返回结果
    match() 只在字符串开始匹配,也只返回一个对象。对象调用group方法来拿结果
    * split() 分割,多次分割,先以第一个进行分割,再在一次分割的基础上以第二个元素进行分割
    sub() 替换,与replace类似
    subn() 与sub一样,只不过会返回一个替换了几次
    compile() 定义一个规则以便以后调用
    finditer() 封装成一个迭代器

    <注意点>:
      在创建文件的时候出现了一个错误,不小心把文件的名字命名为了模块的名字,导致错误希望大家注意!
  • 相关阅读:
    让x86的android模拟器能模拟arm架构系统
    婴儿补充微量元素
    asterisk 能打电话的配置
    SIP协议错误代码大全
    asterisk错误排查
    asterisk帮助与国内论坛
    win10 只要打开文件对话框就卡死解决方法
    分享到朋友圈实现
    跳转前暂停几秒js如何实现
    Github css加载失败,样式混乱解决办法
  • 原文地址:https://www.cnblogs.com/pig1314/p/8316269.html
Copyright © 2011-2022 走看看