python-21-常用函数以及argparse的基本用法和zlib压缩数据

1 argparse命令行参数解析

argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数。
文件tt.py

import argparse
parser = argparse.ArgumentParser(description="Demo of argparse")
parser.add_argument('-n','--name', default='zhang')
parser.add_argument('-y','--year', default='20')
args = parser.parse_args()
print(args)
name = args.name
year = args.year
print('Hello {}  {}'.format(name,year))

输出显示

Namespace(name='zhang', year='20')
Hello zhang  20

(1)ArgumentParser类生成一个parser对象,其中的description描述这个参数解析器是干什么的,当在命令行显示帮助信息的时候会看到description描述的信息。
(2)通过对象的add_argument函数来增加参数。这里我们增加了两个参数name和year,其中’-n’,’–name’表示同一个参数,default参数表示在运行命令时若没有提供参数,程序会将此值当做参数值。
(3)采用对象的parse_args获取解析的参数。
(4)命令行输入

CMD>python tt.py -n 'liu' --year '30'
Namespace(name="'liu'", year="'30'")
Hello 'liu'  '30'

(4)查看帮助信息

CMD>python tt.py -h
usage: tt.py [-h] [-n NAME] [-y YEAR]

Demo of argparse

optional arguments:
  -h, --help            show this help message and exit
  -n NAME, --name NAME
  -y YEAR, --year YEAR

2 zlib模块压缩数据

(1)zlib.compress(string[, level])
zlib.compress用于压缩流数据。
参数string指定了要压缩的数据流.
参数level指定了压缩的级别,它的取值范围是1到9。
压缩速度与压缩率成反比,1表示压缩速度最快,而压缩率最低,而9则表示压缩速度最慢但压缩率最高。

(2)zlib.decompress(string[, wbits[, bufsize]])
zlib.decompress用于解压数据。
参数string指定了需要解压的数据.wbits和bufsize分别用于设置系统缓冲区大小(window buffer )与输出缓冲区大小(output buffer)。

# -- coding:utf-8 --
import zlib
filepath = "kafka振动信信号数据.txt"
with open(filepath,"r",encoding="utf-8") as fr:
    data_str = fr.read()
    
data_bytes = data_str.encode("utf-8")

data_bytes1 = zlib.compress(data_bytes,zlib.Z_BEST_COMPRESSION)
data_bytes11 = zlib.decompress(data_bytes1)
data_str1 = data_bytes11.decode()


data_bytes2 = zlib.compress(data_bytes,zlib.Z_BEST_SPEED)
data_bytes22 = zlib.decompress(data_bytes2)
data_str2 = data_bytes22.decode()
print("原始字符串长度",len(data_str))
print("原始bytes长度",len(data_bytes))
print("Z_BEST_COMPRESSION压缩后长度",len(data_bytes1))
print("Z_BEST_COMPRESSION解压后长度",len(data_bytes11))
print("Z_BEST_COMPRESSION解码后长度",len(data_str1))

print("Z_BEST_SPEED压缩后长度",len(data_bytes2))
print("Z_BEST_SPEED解压后长度",len(data_bytes22))
print("Z_BEST_SPEED解码后长度",len(data_str2))

原始字符串长度 67804
原始bytes长度 67808
Z_BEST_COMPRESSION压缩后长度 15492
Z_BEST_COMPRESSION解压后长度 67808
Z_BEST_COMPRESSION解码后长度 67804
Z_BEST_SPEED压缩后长度 20567
Z_BEST_SPEED解压后长度 67808
Z_BEST_SPEED解码后长度 67804

3 常用函数

3.1 enumerate

用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
    print(i, element)

0 one
1 two
2 three

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

皮皮冰燃

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

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

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

打赏作者

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

抵扣说明:

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

余额充值