• Python模块


    subprocess子进程模块

    import subprocess
    #Popen方法是用来执行系统命令的,直接把结果打印到终端了
    res =subprocess.Popen(r'dir',shell=True,
                           #r'dsfsdfr',shell=True,
                           # stdin= #标准输入(不常用)
                            stdout=subprocess.PIPE,#stdout 标准输出
                            stderr=subprocess.PIPE) #stderr 标准错误
    # 拿到的是‘gbk’编码的结果,
    这个命令可能有正确结果,也可能有错误结果
    print(res.stdout.read().decode('gbk'))
    print('========')
    print(res.stdout.read().decode('gbk'))  #说明只能读一次
    print(res.stderr.read().decode('gbk'))  #如果是错误的就会提示

    json和pickle

    json,有点:所有语言通用;缺点:只能序列化基本的数据类型 list/dict/int..

    pickle,有点:python中所有的东西都能被他序列化;缺点:序列化内容只有python认识

    json

    序列化,将python的值转换为json格式的字符串

    json.dumps()

    反序列化,将json格式的字符串转换为python的数据类型

    json.loads()

    字典或列表中如有中文,序列化时想要保留中文显示

    v = {'k1':'哈哈'}

    val = json.dumps(v,ensure_ascii=False)

    安装第三方模块:

     pip install 包名

    三类模块:
    内置模块

    第三方模块

    自定义模块

     

    sys

    python解释器相关的数据

    sys.path  默认python去导入模块时,会按照sys.path中的路劲挨个查找

    sys.path.append('D:\')

    sys.stdout.write('你好')  标准输出

      回到当前行的起始位置

    sys.getrefcount(a)  获取一个值得应用计数

    sys.getrecursionlimit()  python默认支持的递归数量

    sys.exit(0)  程序终止

    sys.argv

    shutil

    让用户执行脚本传入要删除的文件路径,在内部帮助将目录删除
    import sys
    import shutil
    path = sys.argv[1]  #路径
    shutil.rmtree(path)

    shutil.rmtree('test')  删除一个目录
    shutil.move('oldname','newname')  重命名
    shutil.make_archive('zzh','zip','要压缩的文件')  压缩文件
    shutil.unpack_archive('zzh.zip',extrac_dir='解压目录',format='zip')  解压文件

    if not os.path.exists('code'):
      os.makedirs('code')
    shutil.make_archive(os.path.join('code',ctime),'zip','D:python')
    file_path = os.path.join('code',ctime) + 'zip'
    shutil.unpack_archive(file_path,r'D:x1','zip')


    模块导入
    import os,sys
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
    sys.path.append(BASE_DIR)

    os

    和操作系统相关的

    os.path.exists(path)  如果path存在;返回True;否则返回False

    os.stat('filename或者路劲').st_size  获取文件字节大小

    os.path.abspath(‘路劲’)  获取一个文件的绝对路径

    os.path.dirname(‘name’)  获取文件的上级目录

    os.path.join('data','bin')   路劲的拼接

    os.listdir  查看一个没目录下所有的文件,第一层

    os.walk   查看一个目录下所有的文件,所有层

    os.mkdir  创建目录(一级)

    os.makedirs  创建目录(多级)

    os.rename(''old'',''new'')  文件夹重命名

    file_path = r'ddddxxxxoo.txt'  #创建目录
    file_folder = os.path.dirname(file_path)
    if not os.path.exists(file_folder):
    os.makedirs(file_folder)

    r

    v = r"zzcc yy"  把转义掉,没有换行了

    getpass

    密码密文

    v = getpass.getpass('Please Input Password:')

     

    hashlib

    MD5加密

    def get_md5(pwd):

      obj =hashlib.md5('asd'.encode"utf-8")  #加盐

      obj.update(pwd.encode"utf-8")  #明文

      result = obj.hexigest()  #密文

      return result

    random

    random.choice(['1','2','3'])      #随机选出一个字符串

    random.random()      #随机浮点数

    random.uniform(1,10)       #1到10随机浮点数

    random.randint(0,99)    #0到99之间随机一个,范围随机

    random.randrange(0,100,2)    #0到100之间随机整数

    random.choice('jfoiewh9838')  #随机选出1个字符

    random.sample('f4ji2332d4',3)  #随机选出3个字符

    a = [1,2,3,4]

    random.shuffle(a)    #洗牌

     

    datatime&time

     from datetime import datetime

    ctime = datetime.now().strftime('%Y-%m-%d %H-%M-%S') 当前时间

    print (ctime)

    ctime.strftime("%Y-%m-%d %H:%M:%S")  转时间,可以字符串格式,后加时间格式

    字符串转datetime,可以进行时间加减

    v1 = datetime.strptime('2011-11-11','%Y-%m-%d')

    v2 = v1 + timedelta(days=140)  #v1加上140天,还可写(hours=20)小时

    datetime.utcnow()  当前UTC时间

    import time,datetime
    a = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
    print(a)
    2019-05-28 20:47:09


    paramiko
    连接Linux

    ssh = parmiko.SSHClient()#创建实例对象
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#调用方法,标识没有远程机器的公钥,允许连接
    ssh.connect('IP','port','user','passwd')#连接远程主机
    sudin,stdout,stder = ssh.exec_command('命令')#stdout命令执行后的结果,stder错误信息
    OUT = stdout.readlinex()需要read函数来读取
    for i in OUT:
      print(i)
    ssh.close()


    logging模块
    logging.basicConfig(**kwargs)函数用于调整日志级别,输出格式
    import logging
    logging.basicConfig(filename='日志.txt',
    format="%(asctime)s %(name)s %(levelname)s %(module)s: %(message)s",
    datefmt='%Y-%m-%d %H:%M:%S')
    import traceback
    def func():
    try:
    a = a + 1
    except Exception as e:
    mas = traceback.format_exc()
    logging.error(mas)
    func()

                
    logging.info("info_msg")
    logging.warning("warning_msg")
    logging.error("error_msg")
    logging.critical("critical_msg")

    %(asctime)s  将日志的时间构造成,默认情况下是精准到毫秒
    %(name)s  所使用的日志器名称,默认是‘root’,因为默认使用的是rootLogger
    %(module)  调用日志输出函数的模块名,filename的名称不符,不包含后缀即不包含文件后缀的文件名

    自定义日志


  • 相关阅读:
    Visual Studio 2017 激活密钥
    jwt的ASP.NET MVC 身份验证
    Building a ASP.NET solution from commandline?从命令行构建 ASP.NET 解决方案?
    10 款更先进的开源命令行工具
    Cookie的Secure属性
    阻碍一个人成长的原因是什么?
    逃   离
    如何判断Javascript函数是否是Async函数
    【四百来块】小米RMMNT215NF显示器评测
    npm 中,n 是什么鬼?
  • 原文地址:https://www.cnblogs.com/nice777/p/10939580.html
Copyright © 2020-2023  润新知