【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)