当前位置: 首页 > article >正文

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 Path
      
      p = 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 re
      
      text = "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 json
      
      data = {
          "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 pd
      
      data = {'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 np
      
      arr = 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 plt
      
      x = [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 serial
      
      ser = 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 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()
      data = client_socket.recv(1024)
      print(data.decode())
      client_socket.send(b'Hello from server!')
      client_socket.close()
      server_socket.close()
      
      # 客户端
      import socket
      
      client_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 hashlib
      
      data = 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 zlib
      
      data = b'This is some data for CRC32 check.'
      crc_value = zlib.crc32(data)
      print(hex(crc_value))
      

http://www.kler.cn/news/355736.html

相关文章:

  • 打包使用pythn编写的maya插件,使用pyeal打包
  • Karmada核心概念
  • beyond compare 这个授权密钥已被吊销
  • Lucene 倒排索引
  • 5.深度学习计算
  • 【MR开发】在Pico设备上接入MRTK3(二)——在Unity中配置Pico SDK
  • 利用Arcgis进行沟道形态分析
  • maven工程怎么将除工程源码外的三方依赖一起打包到jar中
  • Vue3 集成Monaco Editor编辑器
  • AI学习指南深度学习篇-自编码器的基本原理
  • MobaXterm 中文乱码
  • WordPress添加meta标签做seo优化
  • node.js下载安装以及环境配置超详细教程【Windows版本】
  • SAP 为 Copilot Joule 增添协作功能
  • 【算法系列-字符串】反转字符串中的单词
  • 深入探讨ASP.NET Core中间件及其请求处理管道特性
  • 1.1 C++语言基础面试问题
  • 基于Arduino做的“鱿鱼游戏”BOSS面具,支持动作检测
  • 软件设计——数据流图
  • arm-none-linux-gnueabi-strip的作用