博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python学习4 常用内置模块
阅读量:5095 次
发布时间:2019-06-13

本文共 2386 字,大约阅读时间需要 7 分钟。

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 osos.getegid()os.getcwd()

shutil

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

glob

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

sys

  • 获取执行参数
sys.argv

  • 执行命令
subprocess.Popen(command)

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

datetime

  • 通过时间戳获取日期
from datetime import datetimedt = 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
//把对象序列化成bytesbyte_data = pickle.dumps({"name": "jinks"})//反操作pick.loads(byte_data)

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

高阶函数相关的模块

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

处理url相关操作的库

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

内建的集合模块

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

实现堆排序

  • 查找最值
import heapqnums = [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 splitline = 'asdf fjdk; afed, fjek,asdf, foo'rs = split(r'[;,\s]\s*', line)

转载于:https://www.cnblogs.com/jinkspeng/p/5281250.html

你可能感兴趣的文章
如何用C语言画一个圣诞树?
查看>>
REDIS源码中一些值得学习的技术细节02
查看>>
hrbust1758
查看>>
Java-Class-I:com.alibaba.fastjson.JSONObject
查看>>
Node.js:连接 MongoDB
查看>>
monkey脚本
查看>>
#define、const、typedef的差别
查看>>
delphi的取整函数round、trunc、ceil和floor
查看>>
[bzoj 3622]已经没有什么好害怕的了
查看>>
两个经典的小例子:杨辉三角和水仙花
查看>>
call,apply,bind
查看>>
Asp.Net Core- 多样性的配置来源
查看>>
安装Apache提示APR not found的解决办法
查看>>
深入探索Nginx工作原理
查看>>
伪元素应用之一(转)
查看>>
【CSS/JS】如何实现单行/多行文本溢出的省略(...)--老司机绕过坑道的正确姿势...
查看>>
软件工程 speedsnail 第二次冲刺4
查看>>
[Python数据挖掘]第4章、数据预处理
查看>>
在Intellij IDEA中使用Debug
查看>>
洛谷P3113 [USACO14DEC]马拉松赛跑Marathon_Gold 线段树维护区间最大值 模板
查看>>