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

【Python】import 引入常用模块

1、import 用法简介

1.1 直接引入模块

语法:import 模块名

1)引入单个模块:import sys
2)引入多个模块:import os, sys (模块间用逗号隔开)
3)引入时起别名:import pandas as pd

功能:导入整个模块,需要使用模块名前缀来访问模块中的函数、变量等。

1.2 引入指定对象

1)语法:from 模块 import 变量/函数/类
从一个模块中引入指定的对象或全部对象到当前命名空间中。

2)语法:from 模块 import *:
从一个模块中引入所有的变量、函数和类到当前命名空间中。(不推荐这种用法)

3)语法:from 模块 import 变量名 as 其他变量名
从一个模块中引入指定的变量,并起别名

4)语法:from 包.模块 import 变量/函数/类
从一个包的模块中引入指定的变量

1.3 包和模块的概念

1)模块是Python程序架构的一个核心概念,指的是一个包含Python代码的文件,拥有独立的名字空间。Python程序可以通过import语句来使用一个模块中的代码。

2)包则是Python模块的一种组织形式,将多个模块组合在一起,形成一个大的Python工具库。包通常是一个拥有__init__.py文件的目录,它定义了包的属性和方法。

模块:是以py结尾的Python源码文件;
包 :是一个目录,包含一个__init__.py文件和若干个模块(.py文件)

2、常用模块

2.1 http.client

Http.client是Python中用于实现HTTP客户端的库,它提供了发送HTTP请求和处理HTTP响应的功能。它支持HTTP/1.1协议,并提供了丰富的接口用于处理HTTP请求和响应。使用Http.client库,可以方便地与Web服务器进行通信

2.2 rclpy

ROS2的python包,提供了节点的创建、发布和订阅话题、服务调用等功能

2.3 os

操作系统相关功能:

1)文件和目录操作‌:例如,os.name返回当前系统类型,os.getcwd()返回当前工作目录,os.remove(path)删除指定路径下的文件。
‌2)系统信息获取‌:os.environ获取环境变量,os.getcwd()获取当前工作目录。
‌3)外部命令执行‌:os.system(command)执行外部命令。

2.4 sys

环境相关功能:
1)命令行参数:sys.argv
2)系统平台信息:sys.platform
3)程序退出状态:sys.exit
4)模块搜索路径:sys.path模块目录列表
5)标准流控制:sys.stdin, sys.stdout, 和 sys.stderr分别对应标准输入、输出和错误流。
6)模块管理:sys.modules用来动态地重新加载模块或检查某个模块是否已经被加

2.5 tty

tty模块为Python程序提供了一种与终端设备交互的方式

1)设置和重置原始模式:tty.setraw()、tty.setcbreak(),tty.tcsetattr()
2)文件描述符操作:tty.open()用于打开一个终端设备,而tty.fileno()则返回文件描述符
3)窗口大小获取:tty.getwinsize()

2.6 termios

termios模块是Python中用于控制终端I/O(输入/输出)操作的库,特别是在Unix和类Unix系统上。它提供了一组函数来获取和设置与POSIX兼容的终端属性。

2.7 time

用于处理时间相关的操作
1)获取当前时间戳:time.time()
2)格式化输出时间:time.ctime()
3)获取格式化时间:time.gmtime([secs])和time.localtime([secs])函数分别用于获取格林尼治时间和本地时间的结构化时间
4)转换时间格式:time.strftime(format[, t])和time.strptime(string[, format])函数分别用于将结构化时间转换为字符串格式,以及将字符串格式的时间转换为结构化时间
5)暂停程序执行:time.sleep(secs)函数可以使程序暂停指定的秒数
6)计算程序性能:time.perf_counter()函数提供了一种测量短时间段间隔的方法,适用于计算程序的性能分析。
7)计算CPU时间:time.process_time()函数返回当前进程的系统和用户CPU时间总和的值,用于评估代码的CPU效率。
8)排序日期列表:time.strptime()
9)计算日期差:利用time.mktime()和time.strptime()函数,可以计算两个日期之间的天数差

2.8 platform

用于获取运行代码的平台信息。这包括操作系统名称、版本、架构等

1)获取系统信息:platform.system()函数可以返回当前操作系统的名称,如Windows、Linux或Darwin(Mac OS X)。
2)获取系统版本:platform.release()
3)获取机器类型:platform.machine()如x86_64表示64位处理器。
4)获取处理器信息:platform.processor()
5)获取Python版本:platform.python_version()
6)获取平台标识符:platform.platform()
7)获取编译器信息:platform.python_compiler()
8)检查64位架构:platform.architecture()

2.9 threading

创建、管理线程

1)创建线程:通过继承threading.Thread类并重写其run方法,或者直接传递一个函数给threading.Thread的构造函数,然后调用它们的start方法来启动。
2)同步原语:如锁(Lock)、条件变量(Condition)、信号量(Semaphore)等
3)事件处理:Event对象允许线程等待某个事件发生后再继续执行
4)定时器:Timer
5)守护线程:DaemonThreads是一种特殊类型的线程,它们会在主程序退出时自动终止。
6)线程局部存储:Local类提供了一种线程局部存储的方式,允许每个线程拥有自己独立的变量副本,避免线程间的变量冲突
7)线程标识:current_thread函数返回当前正在执行的线程对象
8)线程安全队列:Queue类提供了一个适用于生产者-消费者问题的解决方案,它是线程安全的,可以在多个线程之间安全地传递数据。
9)高级同步机制:除了基本的同步原语外,threading模块还提供了更复杂的同步机制,如Barrier、Semaphore、BoundedSemaphore、Condition等

2.10 subprocess

用于创建新的进程、连接它们的输入/输出/错误管道,以及获取它们的返回码。

1)创建新进程:subprocess.run()
2)捕获输出:通过指定参数,如stdout=subprocess.PIPE和stderr=subprocess.PIPE,可以将子进程的输出和错误信息捕获到Python程序中。
3)处理输入:可以使用stdin=subprocess.PIPE参数来向子进程提供输入数据
4)超时管理:timeout参数允许设置一个超时时间,以防子进程运行时间过长而无法正常结束。
5)环境变量:可以通过env参数传递一个字典给子进程,从而设置或修改其环境变量

2.11 random

各种生成随机数的函数和方法

1)生成一个介于0到1之间的随机浮点数:

import random
random_float = random.random()
print(random_float)

2)生成一个介于1到10之间的随机整数

import random
random_integer = random.randint(1, 10)
print(random_integer)

3)从列表中随机选择一个元素

import random
my_list = [1, 2, 3, 4, 5]
random_choice = random.choice(my_list)
print(random_choice)

4)打乱列表的顺序

import random
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list)

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

相关文章:

  • 编程练习:探索数学问题的编程解决方案 P137
  • Unity中的功能解释(数学位置相关和事件)
  • android13 系统默认设置静态IP
  • VMware下Ubuntu找不到共享文件夹
  • 4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
  • Latex 自定义运算符加限定条件的实现
  • WPF入门教学十 资源与字典
  • Rust结构体初探
  • linux中实现多路复用服务器
  • 使用Python创建EXE运行器和截图工具
  • 【数据结构和算法实践-排序-总结】
  • 9.24作业
  • Uniapp 打包后的横屏控制
  • 【JavaEE初阶】多线程7(面试要点)
  • MacOS安装MindSpore(2024年最新)
  • 创意实现!在uni-app小程序商品详情页轮播中嵌入视频播放功能
  • 成都睿明智科技有限公司可靠吗?
  • SpringBoot--为什么Controller是串行的?怎样才能并行?
  • uni-app之旅-day01-home页
  • Python 课程18-SQLAlchemy
  • Stable Diffusion绘画 | LCM模型:实现秒出图
  • 多旋翼无人机光伏发电站吊运技术详解
  • nodejs基于vue电子产品商城销售网站的设计与实现 _bugfu
  • 19 vue3之自定义指令Directive按钮鉴权
  • Qt --- 其他控件的介绍 --- 多元素控件
  • 【在Linux世界中追寻伟大的One Piece】验证TCP
  • 数据工程师岗位常见面试问题-1(附回答)
  • yolo自动化项目实例解析(七)自建UI--工具栏选项
  • 【JavaEE初阶】深入解析单例模式中的饿汉模式,懒汉模式的实现以及线程安全问题
  • IDEA服务启动时无法输出日志