百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

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

toyiye 2024-06-21 12:38 11 浏览 0 评论


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")


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

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

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码