前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python常用模块及方法

python常用模块及方法

作者头像
不止于python
发布2023-09-05 14:18:49
1590
发布2023-09-05 14:18:49
举报
文章被收录于专栏:不止于python

前言

Python拥有丰富的标准库,其中包含了大量的模块,这些模块提供了各种功能和工具,方便开发者在项目中快速实现特定功能。本文将介绍一些常用的Python模块,包括它们的作用和常用方法,以帮助读者在日常编程中更加高效地使用Python。

注意 本篇使用的模块都需要导入使用 import 模块名 dir(模块): 获取模块支持的所有方法和属性 help(模块或方法): 查看模块的调用支持的文档及参数等信息

sys

用于与Python解释器进行交互以及访问系统相关的功能

sys.path: 获取python导入包的路径

代码语言:javascript
复制
In [1]: import sys
In [2]: sys.path
Out[2]:
['/usr/local/bin',
 '/usr/local/lib/python3.7/site-packages',
 '/Users/msw/.ipython']

sys.argv: 获取运行脚本时, 输入的参数

脚本内容

代码语言:javascript
复制
# -*- coding: utf-8 -*-
# @Author: Mehaei
# @Date: 2023-07-29 10:26:57
# @Last Modified by: Mehaei
# @Last Modified time: 2023-07-29 16:02:05
import sys

if __name__ == "__main__":
    args = sys.argv
    print(f"input args: {args}")
    print(f"input args type: {type(args)}")

运行输出

代码语言:javascript
复制
python3.7 test_sys.py 1 2 3 4
input args: ['test_sys.py', '1', '2', '3', '4']
input args type: <class 'list'>

sys.exit(退出代码): 用于退出程序,可选择性地返回一个状态码

代码语言:javascript
复制
# -*- coding: utf-8 -*-
# @Author: Mehaei
# @Date: 2023-07-29 10:26:57
# @Last Modified by: Mehaei
# @Last Modified time: 2023-07-29 10:37:59
import sys


def some_function():
    # 在这里进行一些处理
    exit_status_code = -1  # 退出状态码,可以是任意整数
    sys.exit(exit_status_code)


def main():
    some_function()
    print("这行代码不会执行,因为程序已经在some_function()中退出。")


if __name__ == "__main__":
    try:
        main()
    except SystemExit as e:
        exit_status_code = e.code
        print("程序退出状态码:", exit_status_code)

运行脚本输出:

代码语言:javascript
复制
python3.7 test_sys.py
程序退出状态码: -1

os

用于与操作系统进行交互,提供了访问操作系统功能的接口

os.getcwd(): 获取当前工作目录

代码语言:javascript
复制
In [2]: import sys
In [3]: os.getcwd()
Out[3]: '/test'

os.environ: 环境变量操作

代码语言:javascript
复制
In [7]: os.environ["test"] = "1111"

os.getenv(变量名): 获取环境变量

代码语言:javascript
复制
In [8]: os.getenv("test")
Out[8]: '1111'

In [23]: os.environ["test"]
Out[23]: '1111'

os.remove(文件名): 删除文件

代码语言:javascript
复制
In [9]: os.remove("test.txt")

os.rename(原文件名, 目标文件名): 重命名文件

代码语言:javascript
复制
In [10]: os.rename("test.txt")

os.rmdir(文件路径)

代码语言:javascript
复制
In [11]: os.rmdir("/test")

os.path: 主要对文件路径的操作

os.path.exists(文件或文件路径): 查看文件或文件夹是否存在

代码语言:javascript
复制
In [12]: os.path.exists("test.py")
Out[12]: False

os.path.abspath(文件或文件路径): 获取文件或文件夹的绝对路径

代码语言:javascript
复制
In [14]: os.path.abspath("./")
Out[14]: '/test'

os.path.dirname(文件或文件路径): 返回文件夹的路径部分

代码语言:javascript
复制
In [17]: os.path.dirname("test/")
Out[17]: 'test'

os.path.split(文件路径): 返回文件路径和文件

代码语言:javascript
复制
In [20]: os.path.split("test/test.py")
Out[20]: ('test', 'test.py')

os.path.getsize(文件或文件路径): 返回文件或文件夹的大小, 单位: 字节

代码语言:javascript
复制
In [21]: os.path.getsize("./")
Out[21]: 736

In [22]: os.path.getsize("./1606892719605.jpg")
Out[22]: 425008

re

正则表达式模块,提供了对正则表达式的支持

re.search(正则, 字符串): 在字符串中查找匹配项。

代码语言:javascript
复制
In [37]: import re
In [38]: r = r"(\d+)"
In [39]: s = "小明今年18岁"
In [40]: re.search(r, s)
Out[40]: <re.Match object; span=(4, 6), match='18'>
In [41]: re.search(r, s).group()
Out[41]: '18'

re.findall(正则, 字符串): 返回所有匹配的列表。

代码语言:javascript
复制
In [42]: re.findall(r, s)
Out[42]: ['18']

re.sub(正则, 替换的字符串, 字符串): 将匹配的部分替换为指定字符串。

代码语言:javascript
复制
In [44]: re.sub(r, "19", s)
Out[44]: '小明今年19岁'

string

用于处理字符串的常见操作和常量

ascii_letters: 获取所有ascii码中字母字符的字符串(包含大写和小写)

代码语言:javascript
复制
In [48]: import string
In [49]: string.ascii_letters
Out[49]: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

ascii_uppercase: 获取所有ascii码中的大写英文字母

代码语言:javascript
复制
In [50]: string.ascii_uppercase
Out[50]: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

ascii_lowercase: 获取所有ascii码中的小写英文字母

代码语言:javascript
复制
In [51]: string.ascii_lowercase
Out[51]: 'abcdefghijklmnopqrstuvwxyz'

digits: 获取所有的10进制数字字符

代码语言:javascript
复制
In [52]: string.digits
Out[52]: '0123456789'

octdigits: 获取所有的8进制数字字符

代码语言:javascript
复制
In [53]: string.octdigits
Out[53]: '01234567'

hexdigits: 获取所有16进制的数字字符

代码语言:javascript
复制
In [54]: string.hexdigits
Out[54]: '0123456789abcdefABCDEF'

printable: 获取所有可以打印的字符

代码语言:javascript
复制
In [55]: string.printable
Out[55]: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'

whitespace: 获取所有空白字符

代码语言:javascript
复制
In [56]: string.whitespace
Out[56]: ' \t\n\r\x0b\x0c'

punctuation: 获取所有的标点符号

代码语言:javascript
复制
In [57]: string.punctuation
Out[57]: '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

random

用于生成随机数和随机选择操作

random.random(): 返回一个0到1之间的随机浮点数。

代码语言:javascript
复制
In [69]: import random
In [70]: random.random()
Out[70]: 0.8299833392547933

random.randint(数值, 数值): 返回[a, b]之间的随机整数。

代码语言:javascript
复制
In [66]: random.randint(1, 20)
Out[66]: 11

random.choice(序列): 从序列中随机选择一个元素。

代码语言:javascript
复制
In [63]: random.choice([1,2,3])
Out[63]: 3

random.shuffle(序列): 随机打乱序列的顺序。

代码语言:javascript
复制
In [88]: s = [1,2,3,4]
In [89]: random.shuffle(s)
In [90]: s
Out[90]: [4, 3, 1, 2]

math

提供对数学运算的支持

math.sqrt(数值): 返回x的平方根, 开平方

代码语言:javascript
复制
In [4]: import math
In [5]: math.sqrt(9)
Out[5]: 3.0

math.ceil(数值): 返回大于等于x的最小整数, 向上取整

代码语言:javascript
复制
In [9]: math.ceil(1.1)
Out[9]: 2

math.floor(数值): 返回小于等于x的最大整数, 向下取整

代码语言:javascript
复制
In [10]: math.floor(1.9)
Out[10]: 1

pow(底数,幂): 计算一个数值的N次方

该操作相当于**运算但是结果为浮点型

代码语言:javascript
复制
In [11]: math.pow(2, 3)
Out[11]: 8.0

fsum(序列): 将一个序列的数值进行相加求和

代码语言:javascript
复制
In [13]: math.fsum([1,2,3])
Out[13]: 6.0

json

用于处理JSON(JavaScript Object Notation)数据的编码和解码

json.dumps(对象): 将 对象 序列化为 JSON 格式的 字符串

代码语言:javascript
复制
In [14]: import json
In [15]: d = {"a": 1}
In [22]: dd = json.dumps(d)
In [23]: dd
Out[23]: '{"a": 1}'

json.loads(字符串): 将 字符串 反序列化为 python 对象

代码语言:javascript
复制
In [24]: ddd = json.loads(dd)
In [25]: ddd
Out[25]: {'a': 1}

json.dump(对象, 文件操作句柄): 将对象序列化到文件中

代码语言:javascript
复制
In [29]: d
Out[29]: {'a': 1}
In [30]: json.dump(d, open("test.json", "w+"))

In [31]: with open("test.json", "r+") as f: print(f.read())
{"a": 1}

json.load(文件操作句柄): 反序列化文件为python对象

代码语言:javascript
复制
In [33]: json.load(open("test.json", "r+"))
Out[33]: {'a': 1}

更多模块

https://docs.python.org/zh-cn/3/library/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 不止于python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档