• python学习4 常用内置模块


    logging

    os

    • 路径处理
    // 获取当前路径
    os.path.abspath(__file__)
    
    //获取当前文件夹路径
    os.path.dirname(os.path.abspath(__file__))
    os.path.abspath('.')
    
    //路径拼接处理
    os.path.join(path1, path2)
    
    • 创建链接
    //创建硬/文件链接
    os.link('oops.txt', 'yikes.txt')
    //创建符号链接
    os.symlink('oops.txt', 'jeepers.txt')
    //检查文件还是符号链接
    os.path.islink('jeepers.txt') //False
    //获取符号链接路径
    os.path.realpath('jeepers.txt')
    
    • 获取进程信息
    import os
    os.getegid()
    os.getcwd()
    

    shutil

    • 复制内容
    import shutil
    shutil.copy('oops.txt', 'ohno.txt')
    

    glob

    • 列出匹配文件
    import glob
    print(glob.glob('*'))
    

    sys

    • 获取执行参数
    sys.argv
    

    subprocess

    • 执行命令
    subprocess.Popen(command)
    

    time

    • 使用sleep
    try:
        while True:
            print('start')
            time.sleep(2)
            print('end')
    except KeyboardInterrupt:
        print('stop')
    
    
    • 事件处理
    //获取当前秒
    time.time()
    

    datetime

    • 通过时间戳获取日期
    from datetime import datetime
    dt = datetime.fromtimestamp(t)
    dt.year  ;dt.month  ;dt.day
    

    inspect 检查运行模块的一些基本信息

    • 判断generator函数
    from inspect import isgeneratorfunction 
    isgeneratorfunction(fab) 
    
    • 获取参数
    inspect.signature(fn)
    

    types

    • 判断generator函数和generator实例
    import types 
    isinstance(fab, types.GeneratorType) 
    isinstance(fab(5), types.GeneratorType) 
    

    pickle

    • 把对象序列化成bytes
    //把对象序列化成bytes
    byte_data = pickle.dumps({"name": "jinks"})
    
    //反操作
    pick.loads(byte_data)
    

    json

    • 例子
    • Python对象和JSON的转化
    json_str = json.dumps(data)
    data = json.loads(json_str)
    

    functools 高阶函数相关的模块

    • 消除装饰器带来__name__改变的副作用
    def decorator(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            return func(*args, **kwargs)
        return wrapper
    
    @decorator
    def add(x, y):
        return x + y
    

    urllib, urllib2 处理url相关操作的库

    • 分析http查询字符串
    urllib.parse.parse_qs 返回字典
    urllib.parse.parse_qsl 返回列表
    

    collections 内建的集合模块

    • deque实现插入删除操作的双向列表
    from collections import deque
    
    q = deque(['a', 'b', 'c'])
    q.append('x')
    q.appendleft('y')
    

    heapq 实现堆排序

    • 查找最值
    import heapq
    nums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2]
    print(heapq.nlargest(3, nums)) # Prints [42, 37, 23]
    print(heapq.nsmallest(3, nums)) # Prints [-4, 1, 2]
    
    //
    portfolio = [
        {'name': 'IBM', 'shares': 100, 'price': 91.1},
        {'name': 'AAPL', 'shares': 50, 'price': 543.22},
        {'name': 'FB', 'shares': 200, 'price': 21.09},
        {'name': 'HPQ', 'shares': 35, 'price': 31.75},
        {'name': 'YHOO', 'shares': 45, 'price': 16.35},
        {'name': 'ACME', 'shares': 75, 'price': 115.65}
    ]
    cheap = heapq.nsmallest(3, portfolio, key=lambda s: s['price'])
    expensive = heapq.nlargest(3, portfolio, key=lambda s: s['price'])
    

    re

    • split 字符串分割
    from re import split
    line = 'asdf fjdk; afed, fjek,asdf, foo'
    rs = split(r'[;,s]s*', line)
    
  • 相关阅读:
    码到成功——冲刺随笔 day 8
    码到成功——冲刺随笔 day 7
    码到成功——冲刺随笔 day 6
    码到成功——冲刺随笔 day 5
    码到成功——冲刺随笔 day 4
    码到成功——冲刺随笔 day 3
    码到成功——冲刺随笔 day 2
    Alpha冲刺 —— 5.9
    Alpha冲刺 —— 5.8
    Alpha冲刺 —— 5.7
  • 原文地址:https://www.cnblogs.com/jinkspeng/p/5281250.html
Copyright © 2020-2023  润新知