玖叶教程网

前端编程开发入门

python常用的内置模块有哪些?这20个模块算是高频使用的吗?(上)


1.os

1.1 作用

主要是和操作系统相关的一个模块,如可以进行文件/目录的创建、删除等

1.2 导入

import os

1.3 常用方法及说明

常用方法

说明

os.getcwd()

获取当前路径

os.chdir(path)

改变当前工作目录

os.listdir(path)

列出指定路径下的所有文件和子目录,以列表形式展示

os.mkdir('dirname')

创建文件夹

os.makedirs('dirname1/dirname2')

可以生成多层递归目录

os.removedirs('dirname')

若目录为空,则删除,并递归到上一层目录,若也为空,则删除。

os.rmdir('dirname')

删除空目录,若目录不为空则报错

os.remove()

删除一个文件

os.rename('oldname','newname')

重命名文件/目录

os.stat('path/filename'')

获取文件/目录信息

os.sep

输入操作系统特定的路径分隔符,win下为'\',Linux为'/'

os.name

获取当前的平台,win为'nt' ,Linux为'posix'

os.system('command')

运行shell命令

os.environ

获取系统环境变量

os.path.abspath(path)

返回path的绝对路径

os.path.split(path)

将path分割成目录和文件名的元组

os.path.splittext(path)

分割路径,返回路径名和文件扩展名的元祖

os.path.dirname(path)

返回path的上一层目录

os.path.basename(path)

返回path中最后的文件名

os.path.exist(path)

若path存在返回True,否则返回False

os.path.isfile(path)

若path是一个文件则返回Ture,否则返回False

os.path.isdir(path)

若path是一个目录则返回Ture,否则返回False

os.path.isabs(path)

若path是绝对路径则返回Ture,否则返回False

os.path.join(path1[, path2[, ...]])

把目录和文件名合成一个路径

os.path.getsize(path)

返回文件大小,如果文件不存在就报错

os.path.getmtime(path)

返回最近文件修改时间

os.path.getctime(path)

返回文件path创建时间

os.path.realpath(path)

返回path的真实路径

os.path.normpath(path)

返回path的真实路径

1.4 示例

import os


print(os.getcwd())                 #获取当前路径 ,输出:E:\project\demo_mod
print(os.listdir())                #列出当前目录下的所有文件和目录 ,输出:['.idea', 'abc.txt', 'demo_os.py']
os.mkdir("aaa")                     #创建文件夹aaa
os.rmdir("aaa")                     #删除空目录aaa
os.makedirs("abc/bcd")              #创建多层文件夹abc/bcd
os.removedirs("abc/bcd")            #删除多层多文件abc/bcd
print(os.stat('abc.txt'))           # 输出 :os.stat_result(st_mode=33206, st_ino=562949953424572, st_dev


print(os.path.abspath("."))                             # 返回当前路径的绝对路径 ,输出 :E:\project\demo_mod
os.path.exists(r"E:\project\demo01")                    # 判断path是否存在 ,输出:False
os.path.isfile("abc.txt")                               # 判断abc.txt是文件 ,输出:True
print(os.path.split(r"E:\project\demo_mod\abc.txt"))    # ('E:\\project\\demo_mod', 'abc.txt')
print(os.path.dirname(r"E:\project\demo_mod\abc.txt"))  # E:\project\demo_mod

2.sys

2.1 作用

针对python解释器相关的变量和方法

2.2 导入

import sys

2.3 常用方法及说明

属性/方法

说明

sys.argv

命令行参数,第一个参数为脚本名字

sys.modules

所有加载到内存的模块都放在modules

sys.path

返回查找模块的搜索路径,以列表返回

sys.platform

返回操作系统平台名词

sys.version

返回python解释器程序的版本信息

sys.exit()

退出程序

2.4 示例

import sys


print("获取默认第一个参数:",sys.argv)
print("获取系统路径:",sys.path)
print("获取当前平台:",sys.platform)
print("获取当前版本:",sys.version)

#返回:
获取默认第一个参数: ['E:/project/demo_mod/demo02_sys.py']
获取系统路径: ['E:\\project\\demo_mod', 'E:\\project\\demo_mod', 'C:\\python36\\python36.zip', 'C:\\python36\\DLLs', 'C:\\python36\\lib', 'C:\\python36', 'C:\\python36\\lib\\site-packages']
获取当前平台: win32
获取当前版本: 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)

3.time

3.1 作用

和时间相关的模块

3.2 导入

import time

3.3 常用方法及说明

方法

说明

time.time()

获取当前时间戳

time.sleep(n)

当前线程停止运行n秒

time.asctime()

返回当前时间,格式是西欧格式

time.ctime()

返回当前时间,格式是西欧格式

time.localtime()

返回当前时间对象

time.struct_time()

构造一个对应的事件对象

time.strftime()

将一个时间对象格式化为特定的字符串输出

time.strptime()

照格式化字符把一个格式化时间字符串转成元组。

3.4 示例

import time

print("获取当前时间戳:",time.time())
print("返回当前时间,西欧格式:",time.ctime())
print("返回当前时间对象:",time.localtime())

time.sleep(2)       #睡眠2s
print("返回格式化后的时间:",time.strftime("%Y-%m-%d %X", time.localtime()))
print("将格式化的时间转化成时间对象,元祖形式:",time.strptime('2010-8-11 7:26:16', '%Y-%m-%d %X'))

#返回:
获取当前时间戳: 1634373068.0492582
返回当前时间,西欧格式: Sat Oct 16 16:31:08 2021
返回当前时间对象: time.struct_time(tm_year=2021, tm_mon=10, tm_mday=16, tm_hour=16, tm_min=31, tm_sec=8, tm_wday=5, tm_yday=289, tm_isdst=0)
返回格式化后的时间: 2021-10-16 16:31:10
将格式化的时间转化成时间对象,元祖形式: time.struct_time(tm_year=2010, tm_mon=8, tm_mday=11, tm_hour=7, tm_min=26, tm_sec=16, tm_wday=2, tm_yday=223, tm_isdst=-1)

4.datetime

4.1 作用

关于时间和日期的模块 ,这里面有几个常用的类,包括:
  • date : 日期类
  • time : 时间类
  • datetime : 日期和时间的类 ,相当于前面的两个类
  • datedelta : 时间间隔

4.2 导入

4.3 常用方法及说明

from datetime import date
d = date(date(2020,11,20))

下面表格中的d就是上面的日期对象

属性/方法

说明

date.max

返回最大的日期对象

date.min

返回最小的日期对象

d.year

返回2020

d.month

返回11

d.day

返回20

d.replace(year,month,day)

生成并返回一个新的日期对象,原日期对象不变

d.timetuple()

返回日期对应的time.struct_time对象

d.toordinal()

返回日期自0001-01-01开始的第多少天

d.weekday()

返回日期是星期几,[0, 6],0表示星期一

d.isoweekday()

返回日期是星期几,[1, 7], 1表示星期一

d.isocalendar()

返回一个元组,格式为:(year, weekday, isoweekday)

d.isoformat()

返回‘YYYY-MM-DD'格式的日期字符串

d.strftime(format)

返回指定格式的日期字符串,与time模块的strftime(forma t, struct_time)功能相同


from datetime import time
t = time(20,51,32)

下面表格中的t就是上面的时间对象

属性/方法

说明

t.hour

返回20,取值范围[0,23]

t.minute

返回51,取值范围在[0,59]

t.second

返32,取值范围在[0,59]

t.microsecond

微秒

t.tzinfo

返回传递给time构造方法的tzinfo对象,如果该参数未给出,则返回None

t.replace(hour[, minute[, second[, microsecond[, tzinfo]]]])

生成并返回一个新的时间对象,原时间对象不变

t.isoformat()

返回一个‘HH:MM:SS.%f'格式的时间字符串

t.strftime()

返回指定格式的时间字符串,与time模块的strftime(format, struct_time)功能相同

from datetime import datetime
dt = datetime(2020,09,22,10,35,28,322)

下面表格中的dt就是上面的日期时间对象

属性/方法

说明

dt.year

返回2020

dt.month

返回09

dt.day

返回22

dt.hour

返回10

dt.minute

返回35

dt.second

返回28

dt.microsecond

返回322

datetime.today()

返回一个表示当前本期日期时间的datetime对象

datetime.now([tz])

返回指定时区日期时间的datetime对象,如果不指定tz参数则结果同上

datetime.utcnow()

返回当前utc日期时间的datetime对象

datetime.fromtimestamp(timestamp[, tz])

根据指定的时间戳创建一个datetime对象

datetime.utcfromtimestamp(timestamp)

根据指定的时间戳创建一个datetime对象

datetime.combine(date, time)

把指定的date和time对象整合成一个datetime对象

datetime.strptime(date_str, format)

将时间字符串转换为datetime对象

datetime.timedelta()

返回一个时间间隔对象,可以直接与datetime.datetime对象做加减操作

4.4 示例

date示例

from datetime import date

now = date(2021, 10, 16)
tomorrow = now.replace(day = 17)

print('今天日期:', date.today())
print('今天日期:', now,)
print('明天日期:', tomorrow)
print("日期的元祖", now.timetuple())
print('返回星期几,0代表星期一:', now.weekday())
print('返回星期几,1代表星期一:', now.isoweekday())
print( '返回一个元祖', now.isocalendar())
print( '返回日期字符串:', now.isoformat())
print( '返回格式化的日期:', now.strftime("%Y-%m-%d"))


#输出:
今天日期: 2021-10-16
今天日期: 2021-10-16
明天日期: 2021-10-17
日期的元祖 time.struct_time(tm_year=2021, tm_mon=10, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=289, tm_isdst=-1)
返回星期几,0代表星期一: 5
返回星期几,1代表星期一: 6
返回一个元祖 (2021, 41, 6)
返回日期字符串: 2021-10-16
返回格式化的日期: 2021-10-16

time示例

from datetime import time

t1 = time(17,25,15)
print("显示小时:",t1.hour)
print("显示分钟:",t1.minute)
print("显示秒:",t1.second)
print("显示微秒:",t1.microsecond)

tm1 = t1.replace(minute=32)
print("替换后时间:",tm1)
print('返回时间字符串:', t1.isoformat())
print('返回格式化后的时间字符串', t1.strftime("%X"))


#输出:
显示小时: 17
显示分钟: 25
显示秒: 15
显示微秒: 0
替换后时间: 17:32:15
返回时间字符串: 17:25:15
返回格式化后的时间字符串 17:25:15

datetime示例

from datetime import datetime



print('最大时间:', datetime.max)
print('最小时间:', datetime.min)
print('今天时间,精确到微秒:', datetime.today())
print('现在时间,精确到微秒::', datetime.now())
print("格式化日期:",datetime.strftime(datetime.now(),"%y-%m-%d %H:%M:%S"))


#输出 :
最大时间: 9999-12-31 23:59:59.999999
最小时间: 0001-01-01 00:00:00
今天时间,精确到微秒: 2021-10-16 17:41:08.807900
现在时间,精确到微秒:: 2021-10-16 17:41:08.807900
格式化日期: 21-10-16 17:41:08

timedelta示例

from  datetime import timedelta,datetime
dt = datetime.now()

#日期减一天
dt1 = dt + timedelta(days=-1)       #昨天
dt2 = dt - timedelta(days=1)        #昨天
dt3 = dt + timedelta(days=1)        #明天
delta_obj = dt3-dt
print("当前日期-1:",dt1)
print("当前日期-1:",dt2)
print("当前日期+1:",dt3)
print("相差几天:",delta_obj)


#输出:
当前日期-1: 2021-10-15 17:45:39.574903
当前日期-1: 2021-10-15 17:45:39.574903
当前日期+1: 2021-10-17 17:45:39.574903
相差几天: 1 day, 0:00:00

5.random

5.1 作用

用于生成随机数

5.2 导入

import random

5.3 常用方法及说明

方法

说明

random.random()

用于生成一个0~1的随机浮点数

random.uniform(a,b)

用于生成一个指定范围内的随机浮点数

random.randint(a,b)

用于生成一个指定范围内的整数

random.randrange(start,end,step)

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

random.choice(sequence)

从序列中获取一个随机数

random.shuffle(x[, random])

用于将一个列表中的元素打乱,即将列表内的元素随机排列。

random.sample(sequence, k)

从指定序列中随机获取指定长度的片断并随机排列。

5.4 示例

import random


print("生成一个0~1的随机数:",random.random())
print("生成一个指定范围内的随机数:",random.uniform(1,10))
print("生成一个指定范围的随机整数:",random.randint(1,100))
print("生成指定集合,然后随机生成一个数:",random.randrange(1,5,1))
print("从列表中随机拿一个数:",random.choice(['a','b','c','d']))
print("指定的长度中随机排序",random.sample(['a','b','c','d'],3))

lst = [1,3,46,33,'a','b','c','d']
random.shuffle(lst)
print("列表被打乱后随机排序",lst)


#输出:
生成一个0~1的随机数: 0.06636579979518498
生成一个指定范围内的随机数: 7.29403347010388
生成一个指定范围的随机整数: 93
生成指定集合,然后随机生成一个数: 3
从列表中随机拿一个数: c
指定的长度中随机排序 ['d', 'b', 'a']
列表被打乱后随机排序 ['a', 3, 46, 'b', 1, 'c', 33, 'd']

6.subprocess

6.1 作用

执行系统命令

6.2 导入

import subprocess

6.3 常用方法及说明

方法

说明

subprocess.call(command)

执行命令,返回状态码

subprocess.run()

执行命令,等待命令执行完成后返回一个包含执行结果的CompletedProcess类的实例。

subprocess.check_call(command)

执行命令,如果执行状态码是0,则返回0,否则抛出异常

subprocess.check_output()

执行命令,如果执行状态码是0,则返回命令执行结果,否则抛出异常

subprocess.getoutput(cmd)

接收字符串格式的命令,执行命令并返回执行结果,其功能类似于os.popen(cmd).read()和commands.getoutput(cmd)。

subprocess.getstatusoutput(cmd)

执行cmd命令,返回一个元组(命令执行状态, 命令执行结果输出),其功能类似于commands.getstatusoutput()。

subprocess.Popen()

可以执行各种命令,以上的那些方法都是基于此类实现的。

6.4 示例

import subprocess


# 查看当前目录下的文件 ,以下三条命令必须指定shell参数 ,否则会报错
subprocess.run(["dir"],shell=True)
subprocess.run(["java","-version"])
subprocess.call("dir",shell=True)
subprocess.check_call("dir",shell=True)


# 以下两条方法专门就是执行shell命令的 。
subprocess.getoutput("dir")
subprocess.getstatusoutput("dir")

#输出 :以上都可以返回命令执行后的结果

7.hashlib

7.1 作用

用于加密相关的操作

7.2 导入

import hashlib

7.3 常用方法及说明

方法

说明

hashlib.md5()

进行md5算法加密

hashlib.sha1()

进行SHA1算法加密

hashlib.sha224()

进行SHA224算法加密

hashlib.sha256()

进行SHA256算法加密

hashlib.sha384()

进行SHA384算法加密

7.4 示例

import hashlib

m1 = hashlib.md5('hello python'.encode(encoding='utf-8'))  # 构建MD5对象
print(m1.hexdigest())       # 结果为: e5d3024684c9be1dd3f6114ecc8bbdddc


sh224 = hashlib.sha224("hello python".encode('utf-8'))
print(sh224.hexdigest())     

sh256 = hashlib.sha256("hello python".encode('utf-8'))
print(sh256.hexdigest())    

sh384 = hashlib.sha384("hello python".encode('utf-8'))
print(sh384.hexdigest())    


#结果输出:
e53024684c9be1dd3f6114ecc8bbdddc
7f78ad20eff5afc21166e6a5e22962a2819bd28d335ba95ff414b3f5
373a23512f9531ad49ec6ad43ecdda58df01e59d9ec5812d601fd05cc53345d3
eaf44aabb38c34ff948e714b9c3c08f3fed996d74fc9f1225d7368ccb386465df272e55912041921eddf13b51aff833c

8.json

8.1 作用

编码或解码json对象

8.2 导入

import json

8.3 常用方法及说明

方法

说明

json.dumps()

将python对象转化成json字符串

json.loads()

将json字符串转化为python对象

json.dump()

将python对象转化成json字符串并存入文件

json.load()

从文件读取字符串转化成python对象

8.4 示例

import json

# 1.字符串(json) --> 字典
color = '{"1":"red","2":"green","3":"blue","4":"black"}'
color_dict = json.loads(color)
print("color_dict:",color_dict)


# 2.字典 --> json
color_json  = json.dumps(color_dict)
print("color_json:",color_json)


# 3.(json)文件 --> 字典
with open("color.json") as f:
    dt = json.load(f)
print("dt:",dt)

# 4.dict --> (json)文件
with open("color1.json","w") as f1:
    json.dump(dt,f1)                #将python字典数据写入color1.json

    
#输出 :
color_dict: {'1': 'red', '2': 'green', '3': 'blue', '4': 'black'}
color_json: {"1": "red", "2": "green", "3": "blue", "4": "black"}
dt: {'1': 'red', '2': 'green', '3': 'blue', '4': 'black'}

9.pickle

9.1 作用

用于序列化的模块

9.2 导入

import pickle

9.3 常用方法及说明

方法

说明

pickle.dumps()

将数据通过特殊的形式转换为只有python语言认识的字符串

pickle.loads()

将pickle数据转换为python的数据结构

pickle.dump()

将数据通过特殊的形式转换为只有python语言认识的字符串,并写入文件

pickle.load()

从数据文件中读取数据,并转换为python的数据结构

9.4 示例

import pickle

# 1.序列化
color = ["red","green","blue","black"]
color_byte = pickle.dumps(color)
print("color_byte:",color_byte)


# 反序列化即字节转列表(python数据类型)
color_obj  = pickle.loads(color_byte)
print("color_obj:",color_obj)


class Person():

    def __init__(self,name,age):
        self.name = name
        self.age = age


p = Person('zhangsan',21)


# 3.持久化到文件
with open("color.txt","wb") as f:
    dt = pickle.dump(p,f)

# 4. 从文件读取数据
with open("color.txt","rb") as f:
    p_data = pickle.load(f)

print(p_data)


#输出 :
color_byte: b'\x80\x03]q\x00(X\x03\x00\x00\x00redq\x01X\x05\x00\x00\x00greenq\x02X\x04\x00\x00\x00blueq\x03X\x05\x00\x00\x00blackq\x04e.'
color_obj: ['red', 'green', 'blue', 'black']
<__main__.Person object at 0x03A4B050>

10.shutil

10.1 作用

主要用于文件或目录的复制或归档的操作

10.2 导入

import shutil

10.3 常用方法及说明

方法

说明

shutil.copy('源文件','目标地址')

复制文件

shutil.copy2('源文件','目标地址')

复制文件,暴露元数据

shutil.copyfileobj(open('源文件','r'),open('目标文件','w'))

讲一个文件的内容拷贝到另外一个文件当中

shutil.copyfile('源文件','目标文件')

将一个文件的内容拷贝到另外一个文件中

shutil.copytree('源目录','目标目录')

复制整个目录

shutil.copymode()

拷贝权限

shutil.copystat()

拷贝元数据(状态)

shutil.rmtree()

移除整个目录,无论是否为空

shutil.move('源地址','目标地址')

移动文件或文件夹

shutil.which('命令字符串')

检测命令对应的文件路径

shutil.disk_usage('盘符')

检测磁盘使用信息

shutil.make_archive('目标文件路径','归档文件后缀','需要归档的目录')

归档函数,归档操作

shutil.unpack_archive('归档文件路径','解包目标文件夹')

解包操作

shutil.get_archive_formats()

获取当前系统已注册的归档文件格式(后缀)

shutil.get_unpack_formats()

获取当前系统已经注册的解包文件格式(后缀)

10.4 示例

import shutil

shutil.copy('abc.txt','bcd.txt')
shutil.copy2('abc.txt','ddd.txt')

# 基于文件流的复制,目标文件必须存在
with open("abc.txt","rb") as f ,open("ddd.txt","wb") as s:
    shutil.copyfileobj(f,s)

shutil.copyfile('abc.txt','acc.txt')        # 目标文件无须存在
shutil.copymode('abc.txt','acc.txt')        # 仅拷贝权限,内容,组,用户均不变,目标文件必须存在


# 文件夹压缩,不可压缩文件
shutil.make_archive("a1","zip","E:\project\demo2801")


# 备注 :以上都直接形成文件

因篇幅有限,故另外一部分放在下一篇文章 。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言