python常用模块及方法

2023-09-05 14:18:49 浏览数 (1)

前言

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!"#$%&'()* ,-./:;<=>?@[\]^_`{|}~ tnrx0bx0c'

whitespace: 获取所有空白字符

代码语言:javascript复制
In [56]: string.whitespace
Out[56]: ' tnrx0bx0c'

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/

0 人点赞