python有用模块/包

random包

需要导入random包

import random

使用示例:

easydict

EasyDict允许以属性的形式访问字典值,且可以递归地访问。一种用于python字典属性的点表示法

from easydict import EasyDict

d = EasyDict()
d.foo=3
print(d.foo)

d = EasyDict(log=False)
d.debug = True
print(d.items())

class Flower(EasyDict):
  power=1
 
f =Flower({“height”:12})
print(f.power)
print(f[“power”])

tqdm模块

简介

tqdm means “progress” in Arabic (taqadum, تقدّم)and an abbreviation for “I love you so much” in Spanish (te quiero demasiado).

Instantly make your loops show a smartprogress meter - just wrap any iterable withtqdm(iterable), and you’re done!

注意是:from tqdm import tqdm

tqdm常用参数

with tqdm(total=100, desc='前缀', postfix='后缀', mininterval=0.3) as pbar:
    for i in range(100):
        time.sleep(0.1)  # 休眠0.1s
        pbar.update(1)

上述代码中total参数是进度条的总长度 ,desc参数是进度条的前缀,postfix是进度条的后缀,minterval代表进度条的最小更新时间间隔,time.sleep(0.1)模拟任务的执行;

pbar.update(1)代表代码运行到这里进度条就加1,也就是说,pbar.update(2)就代表加2。但是进度条的状态更新还要看参数niminterval,若不设置该参数,则就是运行到pbar.update处就马上更新。

tqdm加enumerate

最好是,tqdm要加在enumerate里面:

enumerate(tqdm(iter_object))

import os
from tqdm importtqdm
import time

if __name__ == '__main__':
    x_list = [1, 2, 3, 4, 5]

    # for i,x in enumerate(x_list):
    #    print(f"i: {i}, x: {x}")

    # for i, x intqdm(enumerate(x_list)):
    #    print(f"i: {i}, x: {x}")

    for i, x in tqdm(enumerate(x_list), total=len(x_list)):
        # print(f"i: {i}, x:{x}")
        time.sleep(1)

    ## 正确方式 ##
    # for i, x inenumerate(tqdm(x_list)):
    #    # print(f"i: {i}, x: {x}")
    #    time.sleep(1)

多进程tqdm

with Pool(processes=4) as pool:
    result = list(tqdm(pool.imap(func_s, np.linspace(0, 2 *math.pi, 1000)), total=1000))
print(result)

对pandas的DataFrame使用tqdm

csv_df = pd.DataFrame(np.random.random((10000, 3)))

for index, row in tqdm(csv_df.iterrows(), total=csv_df.shape[0]):
   time.sleep(0.1)

with tqdm(total=len(list(csv_df.iterrows()))) as pbar:
    for index, row in csv_df.iterrows():
        pbar.update(1)
        time.sleep(0.1)

glob模块

简介

查找包含给定字符串的文件unique

glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:”*”, “?”, “[]”。”*”匹配0个或多个字符;”?”匹配单个字符;”[]”匹配指定范围内的字符,如:[0-9]匹配数字

glob.glob

返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径。下面是使用glob.glob的例子:

import glob
#获取指定目录下的所有图片
print glob.glob(r"E:/Picture/*/*.jpg")
#获取上级目录的所有.py文件
print glob.glob(r'../*.py') #相对路径

glob.iglob

获取一个可编历对象,使用它可以逐个获取匹配的文件路径名。与glob.glob()的区别是:glob.glob同时获取所有的匹配路径,而glob.iglob一次只获取一个匹配路径。这有点类似于.NET中操作数据库用到的DataSet与DataReader。下面是一个简单的例子:

import glob
 
#父目录中的.py文件
f = glob.iglob(r'../*.py')
print f #<generator object iglob at 0x00B9FF80>
for py in f:
    print(py)

pprint模块

pprint – 美观打印

作用:美观打印数据结构

pprint 包含一个“美观打印机”,用于生成数据结构的一个美观视图。格式化工具会生成数据结构的一些表示,不仅可以由解释器正确地解析,而且便于人类阅读。输出尽可能放在一行上,分解为多行时则需要缩进。

傅里叶变换包

scipy.fftpack和numpy.fft

声音的包

from lisa import audiosupport
audiosupport.beep()

itertools模块

Infinite Iterators(无穷迭代器)

Iterators terminating on the shortest input sequence(迭代器终止于最短的输入序列)

Combinatoric generators(组合学函数)

常用函数

itertools.groupby()方法

difflib模块

difflib是python提供的比较序列(string list)差异的模块。

实现了三个类:

1>SequenceMatcher 任意类型序列的比较 (可以比较字符串)

2>Differ 对字符串进行比较

3>HtmlDiff 将比较结果输出为html格式.

符号

含义

'-'

包含在第一个系列行中,但不包含第二个。

'+'

包含在第二个系列行中,但不包含第一个。

' '

两个系列行一致

'?'

存在增量差异

'^'

存在差异字符

addict模块

下载

pip install addict

基本使用

from addict import Dict
configs = Dict()
configs.platform.status = "on"
configs.platform.web.task.name = "测试-1204"
configs.platform.web.periods.start = "2020-10-01"
configs.platform.web.periods.end = "2020-10-31"

click模块

Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现

Click 是通过装饰器来把一个函数方法装饰成命令行接口的

retry模块

retry(exceptions=Exception, tries=-1,delay=0, max_delay=None, backoff=1, jitter=0, logger=logging_logger)

@retry((ValueError, TypeError), tries=8,delay=0.1, backoff=2, jitter=0.1, max_delay=1)
def make_trouble():
   """
   Retry on ValueError or TypeError, sleep 0.1, 0.3, 0.7, 1, 1, ... secondsbetween attempts.
   """
   print(1, time.time())
   raise ValueError('a')
 
if __name__ == '__main__':
   make_trouble()

collections模型

counter

counter自有的三种方法:

counter的常用操作:

加减与交并:

元加减操作:

counter统计数量分布

统计数量分布

from collections import Counter
print(sorted(Counter(y).items()))

heapq

heapq.heappush(heap, item)

heapq.heapify(list)

heapq.heappop(heap)

heapq.heapreplace(heap.item)

heapq.heappushpop(list, item)

heapq.merge(…)

heapq.nlargest(n,heap)

heapq.nsmallest(n,heap)

比如:

cheap = heapq.nsmallest(3, portfolio, key=lambdas: s['price'])
expensive = heapq.nlargest(3,portfolio, key=lambda s: s['price'])

wmi

WMI (Windows Management Instrumentation) 模块可用于获取 Windows 内部信息,在使用Python获取Windows系统上的相关的信息可以使用WMI接口来获取。

WMI是一项核心的Windows管理技术,WMI作为一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源,比如用户可以在远程计算机器上启动一个进程;设定一个在特定日期和时间运行的进程;远程启动计算机;获得本地或远程计算机的已安装程序列表;查询本地或远程计算机的Windows事件日志等等。

该模块需要 win32com 的支持,环境安装如下,

pip install wmi  
pip install pypiwin32  

测试安装结果

>>> import win32con
>>> import wmi

导入模块没有报错,证明安装完成

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wugou2014

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值