图解 Python 编程(9) | 模块和包
🌞欢迎来到Python的世界
🌈博客主页:卿云阁💌欢迎关注🎉点赞👍收藏⭐️留言📝
🌟本文由卿云阁原创!
📆首发时间:🌹2024年6月2日🌹
✉️希望可以和大家一起完成进阶之路!
🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!
目录
模块
包
常见的python模块
os:操作系统管理
sys:调用命令行参数
random:生成随机数
json:序列化
pickle:序列化
glob:查找文件
shutil:文件管理
platform:操作系统信息
模块
什么是模块
在Python中,⼀个.py⽂件就可以称之为 ⼀个模块(Module)。
模块分类
模块分为三种:
(1)内置标准模块(又称标准库)
执行help(‘modules’)查看所有python自带模块列表
help('modules')
(2)第三方开源模块
可通过 pip install 模块名 联网安装,其中plotly是我需要安装的模块名。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple plotly
软件⼀般会被自动安装你python安装目录的这个子目录里
/your_python_install_path/3.6/lib/python3.6/site-packages
卸载
pip uninstall numpy
(3)自定义模块
import+模块名,这种方式会导入m1模块的所有元素在访问时, 需要加上前缀"m1."


包
一个包就是一个文件目录,你可以把同一个业务线的文件放在一起
常见的python模块
python中的模块有很多,这里我们列出几种常见的模块的使用:
os:操作系统管理
os 模块提供了很多允许你的程序与操作系统直接交互的功能
>>> import os
>>> os.getcwd()#当前项目的路径
'D:\\pythonProject6'
>>> os.listdir()#当前项目的文件
['.idea', 'index.html', 'main.py', 'venv']
import os
得到当前⼯作⽬录,即当前Python脚本⼯作的⽬录路径: os.getcwd()
返回指定⽬录下的所有⽂件和⽬录名:os.listdir()
函数⽤来删除⼀个⽂件:os.remove()
删除多个⽬录:os.removedirs(r“c:\python”)
检验给出的路径是否是⼀个⽂件:os.path.isfile()
检验给出的路径是否是⼀个⽬录:os.path.isdir()
判断是否是绝对路径:os.path.isabs()
检验给出的路径是否真地存:os.path.exists()
返回⼀个路径的⽬录名和⽂件名:os.path.split() e.g
os.path.split('/home/swaroop/byte/code/poem.txt') 结果:
('/home/swaroop/byte/code', 'poem.txt')
分离扩展名:os.path.splitext() e.g os.path.splitext('/usr/local/test.py')结果:('/usr/local/test', '.py')
获取路径名:os.path.dirname()
获得绝对路径: os.path.abspath()
获取⽂件名:os.path.basename()
运⾏shell命令: os.system()
读取操作系统环境变量HOME的值:os.getenv("HOME")
返回操作系统所有的环境变量: os.environ
设置系统环境变量,仅程序运⾏时有效:os.environ.setdefault('HOME','/home/alex')
给出当前平台使⽤的⾏终⽌符:os.linesep Windows使⽤'\r\n',Linux and MAC使⽤'\n'
指示你正在使⽤的平台:os.name 对于Windows,它是'nt',⽽对于Linux/Unix⽤户,它
是'posix'
重命名:os.rename(old, new)
创建多级⽬录:os.makedirs(r“c:\python\test”)
创建单个⽬录:os.mkdir(“test”)
获取⽂件属性:os.stat(file)
修改⽂件权限与时间戳:os.chmod(file)
获取⽂件⼤⼩:os.path.getsize(filename)
结合⽬录名与⽂件名:os.path.join(dir,filename)
改变⼯作⽬录到dirname: os.chdir(dirname)
获取当前终端的⼤⼩: os.get_terminal_size()
杀死进程: os.kill(10884,signal.SIGKILL)
sys:调用命令行参数
“sys”即“system”,“系统”之意。该模块提供了一些接口,用于访问 Python 解释器自身使用和维护的变量,同时模块中还提供了一部分函数,可以与解释器进行比较深度的交互。
import sys
print("-----获取环境变量-----")
print(sys.path)
print("-----获取当前脚本的参数-----")
print(sys.argv)结果
-----获取环境变量-----
['D:\\pythonProject6', 'D:\\pythonProject6', 'D:\\pycharm\\PyCharm 2021.2.3\\plugins\\python\\helpers\\pycharm_display', 'D:\\anaconda\\python38.zip', 'D:\\anaconda\\DLLs', 'D:\\anaconda\\lib', 'D:\\anaconda', 'C:\\Users\\qingyun\\AppData\\Roaming\\Python\\Python38\\site-packages', 'D:\\anaconda\\lib\\site-packages', 'D:\\anaconda\\lib\\site-packages\\locket-0.2.1-py3.8.egg', 'D:\\anaconda\\lib\\site-packages\\win32', 'D:\\anaconda\\lib\\site-packages\\win32\\lib', 'D:\\anaconda\\lib\\site-packages\\Pythonwin', 'D:\\pycharm\\PyCharm 2021.2.3\\plugins\\python\\helpers\\pycharm_matplotlib_backend']
-----获取当前脚本的参数-----
['D:/pythonProject6/main.py']
random:生成随机数
>>> random.randrange(1,10) #返回1-10之间的⼀个随机数,不包括10
>>> random.randint(1,10) #返回1-10之间的⼀个随机数,包括10
>>> random.randrange(0, 100, 2) #随机选取0到100间的偶数
>>> random.random() #返回⼀个随机浮点数
>>> import random
>>> random.choice('abcdefghi')
'i'
>>> random.sample('abcdefghij',3) #从多个字符中选取特定数量的字符
['h', 'c', 'f']
>>> import string
>>> ''.join(random.sample(string.ascii_lowercase + string.digits, 6))
'4fvda1'
#洗牌
>>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> random.shuffle(a)
>>> a [3, 0, 7, 2, 1, 6, 5, 8, 9, 4]
json:序列化
什么是Json?
Json的作用是用于不同语言接口间的数据交换,比如你把python的list、dict直接扔给javascript, 它是解析不了的。2个语言互相谁也不认识。Json就像是计算机界的英语 ,可以帮各个语言之间实现数据类型的相互转换。
python的序列化
import json# Python对象
data = {'name': 'Alice', 'age': 25, 'is_student': True}# 序列化为JSON字符串
json_str = json.dumps(data)
print(json_str)# 反序列化为Python对象
data = json.loads(json_str)
print(data)
pickle:序列化
提供了四个功能:dumps、dump、loads、load
import pickle# Python对象
data = {'name': 'Alice', 'age': 25, 'is_student': True}# 序列化为二进制格式并写入文件
with open('data.pkl', 'wb') as file:pickle.dump(data, file)# 从文件中读取并反序列化
with open('data.pkl', 'rb') as file:data = pickle.load(file)
print(data)
json
Json模块也提供了四个功能:dumps、dump、loads、load,用法跟pickle⼀致
json vs pickle:
JSON:
优点:跨语⾔(不同语言间的数据传递可用json交接)、体积⼩
缺点:只能⽀持int\str\list\tuple\dict
Pickle:
优点:专为python设计,支持持python所有的数据类型
缺点:只能在python中使用,存储数据占空间大
glob:查找文件
import glob# 查找当前目录下所有的 .txt 文件
txt_files = glob.glob('*.txt')
print('txt 文件:', txt_files)# 查找当前目录及其子目录下所有的 .py 文件
py_files = glob.glob('**/*.py', recursive=True)
print('py 文件:', py_files)# 查找当前目录下所有以 'data' 开头的文件
data_files = glob.glob('data*')
print('data 开头的文件:', data_files)
shutil:文件管理
import shutil
import os# 创建测试文件和目录
os.makedirs('test_dir/sub_dir', exist_ok=True)
with open('test_dir/file1.txt', 'w') as f:f.write('This is a test file.')# 复制文件
shutil.copy('test_dir/file1.txt', 'test_dir/file2.txt')
print('文件已复制为 file2.txt')# 复制目录
shutil.copytree('test_dir', 'test_dir_copy')
print('目录已复制为 test_dir_copy')# 移动文件
shutil.move('test_dir/file2.txt', 'test_dir/sub_dir/file2_moved.txt')
print('文件已移动到 sub_dir')# 删除目录
shutil.rmtree('test_dir_copy')
print('目录 test_dir_copy 已删除')# 创建压缩文件
shutil.make_archive('test_archive', 'zip', 'test_dir')
print('压缩文件 test_archive.zip 已创建')# 解压缩文件
shutil.unpack_archive('test_archive.zip', 'extracted_dir')
print('压缩文件已解压到 extracted_dir')
platform:操作系统信息
import platform# 获取操作系统名称
os_name = platform.system()
print(f"操作系统名称: {os_name}")# 获取操作系统版本
os_version = platform.version()
print(f"操作系统版本: {os_version}")# 获取操作系统发布版本
os_release = platform.release()
print(f"操作系统发布版本: {os_release}")# 获取机器类型
machine_type = platform.machine()
print(f"机器类型: {machine_type}")# 获取处理器信息
processor_info = platform.processor()
print(f"处理器信息: {processor_info}")# 获取Python版本
python_version = platform.python_version()
print(f"Python 版本: {python_version}")# 获取Python编译器信息
python_compiler = platform.python_compiler()
print(f"Python 编译器: {python_compiler}")# 获取Python实现
python_impl = platform.python_implementation()
print(f"Python 实现: {python_impl}")# 综合平台信息
platform_info = platform.platform()
print(f"平台信息: {platform_info}")# 使用 uname 获取详细信息
uname_info = platform.uname()
print(f"uname 信息: {uname_info}")
相关文章:

图解 Python 编程(9) | 模块和包
🌞欢迎来到Python的世界 🌈博客主页:卿云阁 💌欢迎关注🎉点赞👍收藏⭐️留言📝 🌟本文由卿云阁原创! 📆首发时间:🌹2024年6月2日&…...

德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第五周) - Transformer
Transformer 1. 注意力机制 在语言建模中,注意力(attention)是一个关键机制,用于在给定上下文中访问相关信息以进行预测。注意力机制允许模型根据输入上下文中的重要信息来加权关注不同的部分,并根据其重要性来决定对不同部分的关注程度。 …...
识别同一用户
识别来自同一终端的访问技术 使用HTTP访问Web服务器时,会反复地执行页面的迁移和图像的读取等通信处理。而不同的通信都是使用不同的方式进行处理。因此服务器端就不需要对每个终端的状态进行单独的管理,可以降低服务器的负载。 另外,…...
Chrome DevTools攻略
Chrome DevTools攻略 Chrome DevTools 是 Chrome 浏览器内置的一组开发者工具,用于帮助开发者调试和优化网页和应用程序。本文将详细介绍如何使用 Chrome DevTools 进行高效的开发和调试。 目录 介绍 什么是 Chrome DevTools? DevTools 的主要功能和用…...
用Python获取Windows本机安装的所有应用程序的实现与分析
一个项目中需要获取本机安装的所有应用程序列表,花了一点时间研究了一下,分享出来。 主要通过访问注册表和桌面快捷方式来完成这一任务,因为注册表中获取到的应用程序列表不完全,因此通过桌面快捷方式进行补充。 导入所需模块 im…...

springboot基础及上传组件封装
简介 本文主要以文件上传为demo,介绍了一些 springboot web 开发的入门的技术栈。 对应刚接触 springboot 的可以参考下。 主要包括文件md5比对、生成图片缩略图、数据库迁移、文件记录持久化、请求全局异常处理等功能。 准备工作 在 idea 中创建项目ÿ…...
WHAT - package.json 解释
目录 一、前言二、介绍2.1 package.json 文件示例2.2 关键字段2.3 常用命令2.4 自定义脚本 三、element-plus 完整示例3.1 main 和 module1. main 字段2. module 字段3. 综合示例 3.2 types1. 示例2. TypeScript 类型定义文件的作用3. 类型定义文件示例4. 发布带有类型定义的包…...

Python知识点14---被规定的资源
提前说一点:如果你是专注于Python开发,那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了,而如果你和作者一样只是操作其他技术的Python API那就足够了。 在Python中被规定的东西不止有常识中的那些关键字、构造器等编程语言…...

文献阅读:GCNG:用于从空间转录组数据推断基因相互作用的图卷积网络
文献介绍 「文献题目」 GCNG: graph convolutional networks for inferring gene interaction from spatial transcriptomics data 「研究团队」 Ziv Bar-Joseph(美国卡内基梅隆大学) 「发表时间」 2020-12-10 「发表期刊」 Genome Biology 「影响因子…...

Mybatis第一讲——你会Mybatis吗?
文章目录 什么是MybatisMybatis的作用是什么 Mybatis 怎么使用注解的方式注解的多种使用Options注解ResultType注解 XML的方式update标签 #{} 和 ${}符号的区别#{}占位${}占位 ${}占位的危险性(SQL注入)数据库连接池 什么是Mybatis 首先什么是Mybatis呢?Mybatis是一…...

【HarmonyOS】List组件多层对象嵌套ForEach渲染更新的处理
【HarmonyOS】List组件多层对象嵌套ForEach渲染更新的处理 问题背景: 在鸿蒙中UI更新渲染的机制,与传统的Android IOS应用开发相比。开发会简单许多,开发效率提升显著。 一般传统应用开发的流程处理分为三步:1.画UI,…...

PostgreSQL基础(六):PostgreSQL基本操作(二)
文章目录 PostgreSQL基本操作(二) 一、字符串类型 二、日期类型 三、...

【前端部署——vercel】部署next.js使用了prisma的项目
部署流程参考 https://blog.csdn.net/qq_51116518/article/details/137042682 问题 PrismaClientInitializationError: Prisma has detected that this project was built on Vercel, which caches dependencies. This leads to an outdated Prisma Client because Prisma’s …...

Vue插槽与作用域插槽
title: Vue插槽与作用域插槽 date: 2024/6/1 下午9:07:52 updated: 2024/6/1 下午9:07:52 categories: 前端开发 tags:VueSlotScopeSlot组件通信Vue2/3插槽作用域API动态插槽插槽优化 第1章:插槽的概念与原理 插槽的定义 在Vue.js中,插槽(…...

类和对象(一)(C++)
类和对象: 类的引入: C语言结构体中只能定义变量,在C中,结构体内不仅可以定义变量,也可以定义函数。比如: 之前在数据结构初阶中,用C语言方式实现的栈,结构体中只能定义变量&#…...

【免费Web系列】JavaWeb实战项目案例六
这是Web第一天的课程大家可以传送过去学习 http://t.csdnimg.cn/K547r 员工信息-删除&修改 前面我们已经实现了员工信息的条件分页查询以及新增操作。 关于员工管理的功能,还有两个需要实现: 删除员工 修改员工 除了员工管理的功能之外&#x…...
git分布式版本控制系统(四)
目前世界上最先进的分布式版本控制系统 官方网址:https://git-scm.com 学习目标: 1 了解 git 前世今生 2 掌握 git 基础概念、基础操作 3 各种 git 问题处理 4 互联网常用 gitflow(工作流程规范) 5 git 代码提交规范 6 git 分支管理及命名规范 常见问…...

【React篇】简述React-Router 的实现原理及工作方式
React Router 路由的基础实现原理分为两种,如果是切换 Hash 的方式,那么依靠浏览器 Hash 变化即可;如果是切换网址中的 Path,就要用到 HTML5 History API 中的 pushState、replaceState 等。在使用这个方式时,还需要在…...

Django里多app
在 Django 里的某一个项目,里面得包含很多 App (功能),那么如何在该项目里管理这么多App呢? 先说明下背景:未先创建 apps 文件夹来存各个app文件夹,直接在项目文件目录里创建各个app。为了便于管理,得将各…...

Prime1 - 信息收集和分析能力的试炼
主机发现 nmap扫描与分析 端口22、80 详细扫描;linux、ubuntu、 udp扫描 端口都是关闭的 脚本扫描 web渗透 打开只有一张图片;源码有图片和一个alt:hnp security不知道有啥用,先记录下来吧 继续web渗透思路走吧,目录…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

C++_哈希表
本篇文章是对C学习的哈希表部分的学习分享 相信一定会对你有所帮助~ 那咱们废话不多说,直接开始吧! 一、基础概念 1. 哈希核心思想: 哈希函数的作用:通过此函数建立一个Key与存储位置之间的映射关系。理想目标:实现…...

macOS 终端智能代理检测
🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...

云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...