python编程:常用模块分类整理

文章目录

    • 一、系统与文件操作类
    • 二、数学与随机数类
    • 三、日期时间类
    • 四、文本处理类
    • 五、数据处理与分析类
    • 六、数据可视化类
    • 七、通信类
    • 八、数据加密校验类

一、系统与文件操作类

  1. os模块

    • 功能:提供与操作系统交互的功能,包括文件和目录操作、路径处理等。
    • 应用场景:文件管理、脚本自动化、跨平台开发。
    • 使用方法:
      • os.path.join():连接路径片段。
      • os.listdir():列出指定目录下的文件和子目录。
      • os.mkdir():创建新目录。
      • os.remove():删除文件。
    • 程序示例:
      import os# 获取当前工作目录
      current_dir = os.getcwd()
      print(current_dir)# 列出指定目录下的文件和子目录
      dir_path = '/path/to/directory'
      files_and_dirs = os.listdir(dir_path)
      print(files_and_dirs)
      
  2. sys模块

    • 功能:与 Python 解释器进行交互,提供对解释器相关参数和功能的访问。
    • 应用场景:获取命令行参数、控制解释器行为、动态加载模块。
    • 使用方法:
      • sys.argv:获取命令行参数列表。
      • sys.path:获取模块搜索路径。
      • sys.exit():退出程序。
    • 程序示例:
      import sys# 获取命令行参数
      args = sys.argv
      print(args)# 退出程序
      sys.exit(0)
      
  3. shutil模块

    • 功能:提供高级的文件操作功能,如文件复制、移动、删除等。
    • 应用场景:文件管理、备份和恢复、项目部署等。
    • 使用方法:
      • 文件复制:shutil.copy(src, dst)将源文件复制到目标位置。
      • 文件移动:shutil.move(src, dst)将文件从源位置移动到目标位置。
      • 递归复制目录:shutil.copytree(src, dst)复制整个目录树。
      • 删除目录:shutil.rmtree(path)删除指定目录及其内容。
    • 程序示例:
      import shutil# 复制文件
      shutil.copy('source.txt', 'destination.txt')# 移动文件
      shutil.move('old_location.txt', 'new_location.txt')# 复制目录树
      shutil.copytree('source_directory', 'destination_directory')# 删除目录
      shutil.rmtree('directory_to_delete')
      
  4. pathlib模块

    • 功能:以面向对象的方式处理文件系统路径,提供了更直观和简洁的文件操作方法。
    • 应用场景:现代 Python 项目中的文件路径处理,提高代码可读性和可维护性。
    • 使用方法:
      • 创建路径对象:from pathlib import Pathp = Path('/path/to/file.txt')
      • 检查路径是否存在:p.exists()
      • 获取文件名、目录名等:p.namep.parent
      • 读写文件:可以结合with语句进行读写操作,如with p.open('r') as f: content = f.read()
    • 程序示例:
      from pathlib import Pathp = Path('/path/to/file.txt')# 检查路径是否存在
      if p.exists():print(f"File exists: {p}")# 获取文件名和目录名
      print(f"File name: {p.name}")
      print(f"Parent directory: {p.parent}")# 读取文件内容
      with p.open('r') as f:content = f.read()print(content)
      

二、数学与随机数类

  1. math模块

    • 功能:提供数学函数和常量。
    • 应用场景:科学计算、图形绘制、数值分析。
    • 使用方法:
      • math.sqrt():计算平方根。
      • math.sin()math.cos()math.tan():三角函数计算。
      • math.pi:圆周率常量。
    • 程序示例:
      import math# 计算平方根
      num = 16
      square_root = math.sqrt(num)
      print(square_root)# 计算正弦值
      angle = math.pi / 6
      sine_value = math.sin(angle)
      print(sine_value)
      
  2. random模块

    • 功能:生成随机数。
    • 应用场景:模拟、游戏开发、随机测试。
    • 使用方法:
      • random.random():生成 0 到 1 之间的随机浮点数。
      • random.randint():生成指定范围内的随机整数。
      • random.choice():从序列中随机选择一个元素。
    • 程序示例:
      import random# 生成 0 到 1 之间的随机浮点数
      random_float = random.random()
      print(random_float)# 生成 1 到 10 之间的随机整数
      random_integer = random.randint(1, 10)
      print(random_integer)# 从列表中随机选择一个元素
      my_list = [1, 2, 3, 4, 5]
      random_element = random.choice(my_list)
      print(random_element)
      

三、日期时间类

  1. datetime模块
    • 功能:处理日期和时间。
    • 应用场景:日志记录、时间戳处理、日程安排。
    • 使用方法:
      • datetime.datetime.now():获取当前日期和时间。
      • datetime.timedelta():进行时间间隔的计算。
      • datetime.date()datetime.time():分别处理日期和时间部分。
    • 程序示例:
      import datetime# 获取当前日期和时间
      now = datetime.datetime.now()
      print(now)# 计算一周后的日期
      one_week_later = now + datetime.timedelta(days=7)
      print(one_week_later)
      

四、文本处理类

  1. re模块(正则表达式)

    • 功能:进行文本模式匹配和搜索替换等操作。
    • 应用场景:文本处理、数据验证、日志分析。
    • 使用方法:
      • re.compile():编译正则表达式模式。
      • re.search():在字符串中搜索匹配的模式。
      • re.findall():查找所有匹配的子串。
      • re.sub():替换匹配的子串。
    • 程序示例:
      import retext = "Hello, world! This is a test."
      pattern = r"world"
      match = re.search(pattern, text)
      if match:print(match.group())all_matches = re.findall(pattern, text)
      print(all_matches)new_text = re.sub(pattern, "Python", text)
      print(new_text)
      
  2. json模块

    • 功能:处理 JSON 数据格式的编码和解码。
    • 应用场景:数据交换、与 Web 服务交互、配置文件读取。
    • 使用方法:
      • json.dumps():将 Python 对象转换为 JSON 字符串。
      • json.loads():将 JSON 字符串转换为 Python 对象。
      • json.dump():将 Python 对象写入 JSON 文件。
      • json.load():从 JSON 文件读取并转换为 Python 对象。
    • 程序示例:
      import jsondata = {"name": "John","age": 30,"city": "New York"
      }
      json_str = json.dumps(data)
      print(json_str)parsed_data = json.loads(json_str)
      print(parsed_data)with open('data.json', 'w') as f:json.dump(data, f)with open('data.json', 'r') as f:loaded_data = json.load(f)print(loaded_data)
      
  3. configparser模块

    • 功能:读取和写入 INI 格式的配置文件,可视为一种特定的文本处理。
    • 应用场景:存储程序的配置信息、参数设置。
    • 使用方法:
      • 读取配置文件:
        • 创建ConfigParser对象:config = configparser.ConfigParser()
        • 读取文件:config.read('config.ini')
        • 获取特定节的配置项:value = config.get('section_name', 'option_name')
      • 写入配置文件:
        • 添加节:config.add_section('new_section')
        • 设置配置项:config.set('new_section', 'option', 'value')
        • 写入文件:with open('config.ini', 'w') as configfile: config.write(configfile)
    • 程序示例:
      import configparser# 读取配置文件
      config = configparser.ConfigParser()
      config.read('config.ini')
      print(config.get('section1', 'option1'))# 写入配置文件
      config.add_section('section2')
      config.set('section2', 'option2', 'new_value')
      with open('config.ini', 'w') as configfile:config.write(configfile)
      

五、数据处理与分析类

  1. pandas模块

    • 功能:强大的数据处理和分析库。
    • 应用场景:数据清洗、数据分析、数据可视化。
    • 使用方法:
      • pandas.DataFrame:用于创建和操作二维表格数据。
      • pandas.read_csv():读取 CSV 文件。
      • DataFrame.head()DataFrame.tail():查看数据的前几行或后几行。
      • DataFrame.describe():获取数据的统计描述。
    • 程序示例:
      import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35],'City': ['London', 'Paris', 'New York']}
      df = pd.DataFrame(data)
      print(df)csv_data = pd.read_csv('example.csv')
      print(csv_data.head())
      
  2. numpy模块

    • 功能:用于科学计算,提供高性能的多维数组和矩阵运算。
    • 应用场景:数值计算、机器学习、数据科学。
    • 使用方法:
      • numpy.array():创建数组。
      • 各种数学运算如加法、乘法、矩阵运算等。
      • numpy.mean()numpy.std()等统计函数。
    • 程序示例:
      import numpy as nparr = np.array([1, 2, 3, 4, 5])
      print(arr)arr2 = np.array([[1, 2], [3, 4]])
      matrix_product = np.dot(arr2, arr2.T)
      print(matrix_product)
      

六、数据可视化类

  1. matplotlib模块
    • 功能:绘制数据可视化图表。
    • 应用场景:数据分析可视化、报告生成。
    • 使用方法:
      • matplotlib.pyplot.plot():绘制线条图。
      • matplotlib.pyplot.scatter():绘制散点图。
      • matplotlib.pyplot.bar():绘制柱状图。
      • 设置标题、标签、坐标轴等。
    • 程序示例:
      import matplotlib.pyplot as pltx = [1, 2, 3, 4, 5]
      y = [2, 4, 6, 8, 10]
      plt.plot(x, y)
      plt.title('Line Plot')
      plt.xlabel('X-axis')
      plt.ylabel('Y-axis')
      plt.show()
      

七、通信类

  1. pyserial模块(操作串口)

    • 功能:实现与串口设备的通信。
    • 应用场景:与硬件设备如传感器、微控制器等通过串口进行数据交互。
    • 使用方法:
      • 创建串口对象:ser = serial.Serial(port='COM1', baudrate=9600, timeout=1)
      • 读写操作:ser.write(b'Hello')写入数据,data = ser.readline()读取数据。
      • 关闭串口:ser.close()
    • 程序示例:
      import serialser = serial.Serial(port='COM1', baudrate=9600, timeout=1)
      ser.write(b'Hello Serial!')
      data = ser.readline()
      print(data.decode())
      ser.close()
      
  2. socket模块(操作网口)

    • 功能:提供对网络通信的底层接口。
    • 应用场景:网络编程、服务器与客户端通信、网络数据传输。
    • 使用方法:
      • 服务器端:
        • 创建套接字:server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        • 绑定地址和端口:server_socket.bind(('127.0.0.1', 8888))
        • 监听连接:server_socket.listen(5)
        • 接受连接并通信:client_socket, client_address = server_socket.accept()
      • 客户端:
        • 创建套接字:client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        • 连接服务器:client_socket.connect(('127.0.0.1', 8888))
    • 程序示例:
      # 服务器端
      import socketserver_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      server_socket.bind(('127.0.0.1', 8888))
      server_socket.listen(5)client_socket, client_address = server_socket.accept()
      data = client_socket.recv(1024)
      print(data.decode())
      client_socket.send(b'Hello from server!')
      client_socket.close()
      server_socket.close()# 客户端
      import socketclient_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      client_socket.connect(('127.0.0.1', 8888))
      client_socket.send(b'Hello from client!')
      data = client_socket.recv(1024)
      print(data.decode())
      client_socket.close()
      

八、数据加密校验类

  1. hashlib模块(MD5 示例)

    • 功能:提供多种安全哈希算法,可用于生成数据的哈希值进行校验。
    • 应用场景:文件完整性验证、密码存储等。
    • 使用方法:
      • 导入模块,选择 MD5 算法创建哈希对象:import hashlibm = hashlib.md5()
      • 更新数据:m.update(b'Hello')
      • 获取哈希值:hash_value = m.hexdigest()
    • 程序示例:
      import hashlibdata = b'This is some data to be hashed.'
      m = hashlib.md5()
      m.update(data)
      hash_result = m.hexdigest()
      print(hash_result)
      
  2. zlib模块(CRC32 示例)

    • 功能:虽然主要用于数据压缩,但也可以获取 CRC32 校验值。
    • 应用场景:数据校验,特别是在需要快速校验但对安全性要求不高的场景。
    • 使用方法:
      • 导入模块:import zlib
      • 计算 CRC32 值:crc_value = zlib.crc32(b'Hello')
    • 程序示例:
      import zlibdata = b'This is some data for CRC32 check.'
      crc_value = zlib.crc32(data)
      print(hex(crc_value))
      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/882246.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一图解千言,了解常见的流程图类型及其作用

在企业管理、软件研发过程中,经常会需要进行各种业务流程梳理,而流程图就是梳理业务时必要的手段,同时也是梳理的产出。但在不同的情况下适用的流程图又不尽相同。 本文我们就一起来总结一下8 种最常见的流程图类型 数据流程图 数据流程图&…

RHCE——例行性工作

准备工作 [rootlocalhost ~]# cat /etc/yum.repos.d/aliyun.repo [ali-app] nameali-app baseurlhttps://mirrors.aliyun.com/centos-stream/9-stream/AppStream/x86_64/os/ gpgcheck0[ali-base] nameali-base baseurlhttps://mirrors.aliyun.com/centos-stream/9-stream/Base…

JS | JS中类的 prototype 属性和__proto__属性

大多数浏览器的 ES5 实现之中,每一个对象都有__proto__属性,指向对应的构造函数的prototype属性。Class 作为构造函数的语法糖,同时有prototype属性和__proto__属性,因此同时存在两条继承链。 构造函数的子类有prototype属性。‌ …

倍福中控显示屏维修控制面板CP7732-1207-0030

使用的环境条件不当可能会损坏设备。 保护设备,防止灰尘、湿气和热量进入。 使用注意事项: 空气流通不畅 设备安装不正确会阻碍设备内的空气流通,从而导致过热和功能受损。 只能按所示方向将设备安装在相应的壁上。 该设备设计用于安装在…

05 P1157 组合的输出

题目&#xff1a; 代码&#xff1a; #include<iostream> using namespace std; # define M 500 #include<algorithm>int sa[100005],k,n,count1;bool func(int n) {int mark0;if(n1){return 1;}else{for(int i2;i<n-1;i){if(n%i0){mark1;return 0;}}if(mark0)r…

强化学习案例:美团是如何在推荐系统中落地强化学习

目录 美团的强化学习应用场景和分析 场景举例 使用原因 强化学习的六大要素 智能体 环境 行动 奖励 目标 状态 美团强化学习模型设计 美团强化学习工程落地 总体的数据结构关系图 实现步骤 1. 日志收集与实时处理&#xff08;Log Collector, Online Joiner&…

PyTorch 2.5 发布带来一些新特性和改进

官网&#xff1a;https://github.com/pytorch/pytorchGitHub&#xff1a;https://github.com/pytorch/pytorch原文&#xff1a;https://github.com/pytorch/pytorch/releases/tag/v2.5.0 主要亮点 (Highlights)] SDPA CuDNN 后端&#xff1a;为 torch.nn.functional.scaled_d…

C++标准模板库--vector

vector 介绍 vector&#xff08;向量&#xff09;是一种序列容器&#xff0c;表示为可以改变大小的数组。vector中的元素使用连续的存储位置&#xff0c;这意味着也可以使用指向其元素的常规指针偏移量来访问任意元素&#xff0c;且与数组一样高效。但与数组不同的是&#xff…

React Componet类组件详解(老项目)

React类组件是通过创建class继承React.Component来创建的&#xff0c;是React中用于构建用户界面的重要部分。以下是对React类组件的详细解释&#xff1a; 一、定义与基本结构 类组件使用ES6的class语法定义&#xff0c;并继承自React.Component。它们具有更复杂的功能&#…

流量PID控制(开度前馈量计算+辅助PID)

和流体流速(瞬时流量)相关的计算请参考下面文章链接: 1、PLC通过伯努利方程近似计算水箱流量 PLC通过伯努利方程近似计算水箱流量(FC)-CSDN博客文章浏览阅读1.6k次。本文介绍了如何使用PLC通过伯努利方程近似计算水箱中的液体流量,主要涉及流量计算、模型验证、梯形图编程及…

C++学习路线(二十)

项目 模块划分 推箱子游戏 地图初始化 热键控制 推箱子控制 游戏结束 地图初始化 坐标系&#xff08;650&#xff0c;650&#xff09; 地图表示&#xff1a; 使用二维数组 游戏道具展示&#xff08;墙 箱子 箱子目的地 小人 地板&#xff09; 判断游戏…

java基于SpringBoot+Vue+uniapp微信小程序的自助点餐系统的详细设计和实现(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

【H∞鲁棒控制】状态反馈、输出反馈、混合灵敏度H∞控制器设计

最近在学H∞鲁棒控制&#xff0c;因为后面项目中可能要用到此控制方法&#xff0c;所以提前进行了学习&#xff0c;刚开始接触感觉看不太懂&#xff0c;涉及的数学专业知识较深&#xff0c;而且网上资料也比较零星且局限&#xff0c;摸爬了好几天才搞懂了点&#xff0c;现自己总…

「Java服务」快速接入SkyWalking方法指南

一、背景 背景&#xff1a;Apache SkyWalking 是一个开源的分布式应用性能监控&#xff08;APM&#xff09;系统&#xff0c;主要用于监控微服务、云原生和容器化应用的性能。接入SkyWalking可以排查以智能投放服务为主的服务响应问题 技术架构 SkyWalking 的核心架构包括以…

银河麒麟V10系统+Windows10双系统启动顺序正确修改方法

***正确可行方法***&#xff0c;测试OK且稳定&#xff1b; 银河麒麟桌面操作系统V10是一款适配国产软硬件平台并深入优化和创新的新一代图形化桌面操作系统&#xff0c;同源支持国内外主流处理器架构&#xff0c;并不断使能GPU、桥片、网卡等各种新硬件&#xff0c;提供更优的软…

vue3学习之插槽slot

关于slot web组件内部的占位符&#xff0c;可以使用自己的标记填充这个占位符 &#xff0c;具名插槽就是在slot标签上添加name属性&#xff08;https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/slot&#xff09; vue3官方文档&#xff1a;https://cn.vuejs.org/gui…

深入解析Java 22:专栏介绍

深入解析Java 22&#xff1a;专栏介绍 Java&#xff0c;作为一种广泛使用的编程语言&#xff0c;一直以来都在不断地发展和改进。2024年3月19日&#xff0c;Java 22的GA版本正式发布&#xff0c;带来了众多令人瞩目的新特性和性能优化。本专栏将深入解析Java 22&#xff0c;带…

AD9680(adc直采芯片)使用说明

写这篇文章之前我是没有使用过AD9680的芯片&#xff0c;但是使用过GMS011芯片&#xff08;是国内24S&#xff09;下的公司出来的芯片&#xff0c;寄存器和管脚全对标。 在这里我就大概说一下芯片的说用方法 一、硬件设计 该芯片支持双通道射频直采 支持协议JESD204B 14位 采样…

leetcode二叉树(五)-二叉树层序遍历

题目 102.二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7…