python中常用模块(os, time, sys, pickle, random, math)

一 os模块

当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在Python编程时,经常和文件、目录打交道,所以离不了os模块。

os.name    名字指操作系统的名字,主要作用是判断目前正在使用的平台,windows返回‘nt’,Linux返回‘posix’

os.sep    操作系统分隔符,Windows为’\\‘,Ubuntu为’/‘

os.getcwd()    查看当前所在路径

os.chdir(path)    改变目录到指定目录

os.rename(path1, path2)    文件重命名,包括目录名和文件名

os.system(cmd)    执行shell命令,返回值是脚本的退出状态码,0表示成功,1代表不成功’

 

os.listdir(path)    列举目录下的所有文件和目录。返回的是列表类型

os.remove(path)    删除path指定的文件,该参数不能省略,不是目录或者文件夹

os.rmdir(path)    删除path指定的目录,该参数不能省略   (若想递归使用,os.removedirs())

os.mkdir(path)    创建path指定的目录,该参数不能省略(若想递归使用,os.makedirs())

 

os.path.isfile(path)    判断指定对象是否为文件。是返回True,不是返回False

os.path.isdir(path)    判断指定对象是否为目录。是返回True,不是返回False

os.path.exists(path)    检验对象(文件或者目录均可)是否存在,是True,不是False

 

os.path.abspath()    获得绝对路径,包括文件名

os.path.dirname(path)    返回文件所在的路径,不包括文件名

os.path.basename(path)    返回文件名,不返回路径

os.path.split(path)    将目录和文件名分开,而不是一个整体。此处只是把前后两部分分开。就是找最后一个’/‘

os.path.join(path, name)    连接目录和文件名,与os.path.split(path)相对

二 time模块

time模块中时间表现的格式主要有三种:

1 timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量

2 struct_time时间元组,共有9个元素组

3 format time格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。

1 生成timestamp

time.time()

2 生成struct_time

1) 本地时间

time.locatime()

time.localtime(time.time()) 

2) 格林威治时间

time.gmtime()

time.gmtime(time.time())

3 生成format_time

time.strftime("%Y-%m-%d %X")

time.strftime('%Y-%m-%d %X', time.localtime())

4 生成固定格式的时间表示格式

time.asctime(time.localtime())

time.ctime(time.time())

5 struct_time元组元素结构

tm_year (年);tm_mon (月);tm_mday (日);tm_hour (时);tm_min (分);tm_sec (秒);

tm_wday (星期几 0-6,0表示周日);tm_yday (一年中的第几天 1-366);tm_isdst (是否夏令时,默认为-1)。

6 format time结构化表示

常见结构化时间组合:

%Y:完整的年份;%m:月份(01-12);%d:一个月中的第几天(01-31);%X:本地相应的时间

time.strftime("%Y-%m-%d %X")

7 datetime模块

datetime模块重新封装了time模块,提供了更多接口,提供的类有:data, time, datetime, timedelta, tzinfo

三 sys模块

os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python运行时的环境。

1 sys.argv

sys.argv[ ] 是用来获取命令行参数的,sys.argv[0]表示代码本身文件的名字,所以参数从1开始。

argv[1] 表示第一个命令行参数

argv[1][2:] 表示取第一个命令行参数,但是去掉前两个字节,比如命令行参数为‘--help’,就去掉‘--’,执行‘help参数。’

2 sys.platform

获取当前系统平台

四 random模块

1 random.random()

用于生成一个0到1的随机浮点数,[0, 1.0)

2 random.uniform(a, b)

用于生成一个指定范围内的随机浮点数,两个参数其中一个是上限,一个是下限。

如果a < b,则生成的随机数n: [a, b]; 如果a > b,则生成的随机数n:[b, a];如果a = b,则生成a。

3 random.randint(a, b)

用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n:[a, b]

4 random.randrange(start, stop=None, step=1)

从指定范围内,按指定基数递增的集合中,获取一个整数。

例如,random.randrange(10, 30, 2),结果相当于从[10, 12, 14, 16, ..., 26, 28]序列中获取一个整数。

random.randrange(10, 30, 2)在结果上与random.choice(range(10, 30, 2))等效。

5 random.choice(sequence)

从序列中获取一个随机元素。sequence不是一种特定类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。

6 random.shuffle(x, random=None)

shuffle list x in place, and return None. 用于将一个列表中的元素打乱,即想列表内的元素随机排列。

7 random.sample(sequence, k)

从指定序列中获取指定长度的片段并随机排列。注意:sample函数不会修改原有序列

8 random.seed()

设置随机数的种子

五 math模块

math.ceil(x);    math.floor(x);    math.copysign(x, y);    math.fabs 返回x的绝对值;     math.e 一个常量

math.cos(x) 求x的余弦,x必须是弧度;    math.sin(x);    math.tan(x)

math.degrees(x) 把x从弧度转换成角度;    math.radians 把角度x转换成弧度

math.factorial(x) 返回整数x的阶乘;    math.fmod(x, y) 返回x/y的余数,其值是一个浮点数

isfinite(x) 如果x是无穷大的数字,则返回True,否则返回False

isinf(x) 如果x是正无穷大或负无穷大,则返回True,否则返回False

isnan(x) 如果x不是数字返回True,否则返回False

log;    log10;    log2;    math.pi;    math.pow(x, y);    math.sqrt(x) 求x的平方根;    math.trunc(x) 返回x的整数部分

六 pickle模块

pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。pickle模块只能在python中使用,python中几乎所有的数据类型(列表、字典、集合、类等)都可以用pickle来序列化。pickle序列化后的数据,可读性差,人一般无法识别。

在pickle模块中有2个常用的函数方法,一个叫做dump(),另一个叫做load()。

1 pickle与cpickle对比

前者是完全用Python来实现的模块,cpickle是用C来实现的,它的速度要比pickle快好多倍,一般建议如果电脑中只要有cpickle的话都应该使用它。

2 pickle模块的dump()

pickle.dump(obj, file, [protocol])

序列化obj,并将结果数据流写入到file中。protocol是序列化模式:0为ASCII(文本的形式序列化),1是旧式二进制,2是新式二进制,不同之处在于后者更高效一些,默认使用0做协议。

3 pickle模块的load()

pickle.load(file)

反序列化对象。从file中,读取字符串,将它们反序列化转换为Python的数据对象,可以正常像操作数据类型的这些方法来操作它们。

一个简单的例子:

import pickle
data = {'a': 1, 'b': 2, 'c': 3}
output = open('data.pkl', 'wb')
pickle.dump(data, output)
output.close()

pkl_file = open('data.pkl', 'rb')
data1 = pickle.load(output)
pkl_file.close()

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值