irpas技术客

〖Python零基础入门篇?〗- Python中的 os 包_全栈哈士奇_os包 python

irpas 1014

万叶集🎉 隐约雷鸣,阴霾天空。 🎉🎉 但盼风雨来,能留你在此。 🎉

前言: ? 作者简介:渴望力量的哈士奇 ?,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS 赋能的博主 ? 🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆 📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬 🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


专栏系列(点击解锁)学习路线指引知识定位 🔥Python全栈白皮书🔥 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。 语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。 自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。 自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。 数据库开发实战篇 更新中 爬虫入门与实战 更新中 数据分析篇 更新中 前端入门+flask 全栈篇 更新中 django+vue全栈篇 更新中 拓展-人工智能入门 更新中 网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者 网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。 vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。 shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结] WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈 渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈 点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器 测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得! 测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。 RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。 Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。 MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。


文章目录 os 模块文件与目录函数介绍 path 模块path 模块常用方法

今天我们来学习一下 python 的内置包 —> OS 包。OS 包拥有着普遍的操作系统功能,拥有着各种各样的函数来操作系统的驱动功能。其中最常用的就是对 路径 与 文件的操作,比如检查某个路径下是否存在某个文件,某个路径是否存在等。也可以创建、删除文件等,接下来我们就详细的看一看 OS 中关于文件的操作功能与用法。

os 模块 文件与目录函数介绍 函数名参数介绍举例返回值getcwd没有参数返回当前路径os.getcwd()字符串listdirpath返回指定路径下所有的文件或文件夹os.listdir(‘c://windows’)返回一个列表makedirpath mode创建多级文件夹os.makedirs(‘d://pycharm/py’)无返回值removedirspath删除多级路径下的文件夹os.removedirs(‘d://pycharm/py’)无返回值renameoldname、newname将文件或文件夹重命名os.rename(‘d://pycharm’,‘d://pycharm01’)无返回值rmdirpath只能删除空文件夹os.rmdir(‘d://pycharm’)无返回值

示例如下:

import os current_path = os.getcwd() print(current_path) new_path = '%s/test01' % current_path os.makedirs(new_path) list_dir = os.listdir(current_path) print(list_dir) # >>> 执行结果如下: # >>> /Users/user_name/PycharmProjects/XXXXX/python_package/animal 这是当前Mac系统的绝对路径,如果是WIN系统会显示磁盘符 # >>> ['cat', 'dog', 'test_time.py', '__init__.py', 'test.py', 'package_os.py', 'test01'] # >>> 列出来当前路径下的所有文件,并创建 'test01' 文件夹成功

这里有个需要注意的地方,如果当前路径下已经存在了要创建的 文件夹或者文件会出现如下报错。

上面我们只演示了创建一个文件夹,如果我们尝试创建多层级的文件夹呢?

import os current_path = os.getcwd() print(current_path) new_path = '%s/test01' % current_path # os.makedirs(new_path) list_dir = os.listdir(current_path) print(list_dir) new_path02 = '%s/test02/test02-01' % current_path # 尝试创建多级文件夹及文件 os.makedirs(new_path02)

注意:如果不指定创建文件夹的路径,直接利用 os.makedirs('filename') 就可以在当前脚本的默认路径下创建该文件夹,这里就不再进行演示了。大家可以自己在本地试一下。


上面我们演示了 getcwd()、listdir()、makedir() 三个函数,接下来我们演示 removedirs()、rename()、rmdir() 三个函数

import os current_path = os.getcwd() print(current_path) new_path = '%s/test01' % current_path # os.makedirs(new_path) list_dir = os.listdir(current_path) print(list_dir) new_path02 = '%s/test02/test02-01' % current_path # 尝试创建多级文件夹及文件 # os.makedirs(new_path02) # 之所以要注销 os.makedir() 是因为,我们已经创建好了 'test01'、'test02/test02-01' ,再次执行会报错 os.removedirs('test02/test02-01') # 删除 test02 多级文件夹 os.renames('test.py', 'test_new.py') # 重命名 test.py 文件夹为 test_new.py os.rmdir('test01') # 删除空文件夹 test01 # >>> 执行效果如下图

注意:当我们使用 os.rmdir() 函数删除非空的文件夹时,是会报错的。比如我们尝试删除 dog 文件夹 就会报错 OSError: [Errno 66] Directory not empty: 'dog' , 该提示的意思是 : OSERROR - dog 是一个非空文件夹 。

以上演示的是 OS 包常用的调用文件的函数,其实OS操作文件的函数还有很多 ,大家可以尝试 使用 dir() 函数查看并尝试练习一下其他函数的应用。


path 模块

os.path 模块同样也是我们在日常开发工作中比较常用的一个模块,接下来我们看看 path 模块都有哪些较常用的函数。

?

path 模块常用方法 函数名参数介绍举例返回值existspath文件或路径是否存在os.path.exists(‘d://test/’)bool类型isdirpath是否是路径os.path.isdir(‘d://test/’)bool类型isabspath是否是绝对路径os.isabs(‘test’)bool类型isfilepath是否是文件os.path.isfile(‘d://test.py’)bool类型joinpath, path*通过路径的’//'将其用字符串合并os.path.join(‘d://’,‘test’)字符串splitpath通过路径的’//'以最后一层路径为及基准切割成元组os.path.split(‘d://test’)元组

需要注意一点:win电脑和 mac电脑的 路径标识符不一样。 win系统为 // , mac或者linux系统为 / 。


结合我们上文 os 包常用的函数演示案例如下:

import os import os.path current_path = os.getcwd() # 定义 current_path 变量获取当前脚本的绝对路径 print(current_path) # 打印 current_path 变量 print(os.path.isabs(current_path)) # 利用 path 模块的 isabs 函数判断 current_path 是否是绝对路径 [返回结果 True] print(os.path.isabs('animal')) # 利用 path 模块的 isabs 函数判断 animal 是否是绝对路径 [返回结果 False , animal 是相对路径] new_path = '%s/test1' % current_path if os.path.exists(new_path): # 判断 new_path 是否存在,如果不存在,则创建 new_path os.makedirs(new_path) data = os.listdir(current_path) print(data) new_path2 = os.path.join(current_path, 'test2', 'test2_01') print(new_path2) # 将 'test2'、'test2_01' 与 current_path 拼接在一起,生成一个 路径形式 的字符串赋值给new_path2 # >>> 执行结果为 '/Users/XXX/PycharmProjects/python_package/test2/test2_01' if os.path.exists(new_path2): # 判断 new_path2 是否存在,如果不存在,则通过 os包 的 makedirs 函数创建 os.makedirs(new_path2) if os.path.exists('test3'): # 判断 'test3' 是否存在,如果不存在,则通过 os包 的 makedirs 函数创建 os.makedirs('test3') if os.path.exists('test2/test2_01'): # 判断 'test2/test2_01' 是否存在,如果存在,则删除 'test2/test2_01' os.removedirs('test2/test2_01') if os.path.exists('test3'): # 判断 'test3' 是否存在,如果存在,则将 'test3' 重命名为 'test3_new' os.rename('test3', 'test3_new') if os.path.exists('test1'): # 判断 'test1' 是否存在,如果存在,则删除 'test1' os.rmdir('test1') current_path = current_path + '/package_os.py' print(os.path.isfile(current_path)) # 利用 path模块 的 isfile函数 判断 current_path 是否是一个文件[返回结果为 True ] print(os.path.split(current_path)) # 利用 path模块 的 split函数 将 'package_os.py' 与 路径分割开; 实际工作中经常通过这种方式将带有文件的路径进行分割 # >>> 执行结果为:('/Users/XXX/PycharmProjects/python_package', 'package_os.py') print(os.path.isdir(os.path.split(current_path)[0])) # 利用 path模块 的 isdir函数 判断 current_path 被 split 函数分割后 第一个元素是不是路径 [返回结果为 True ] print(dir(os.path)) # 通过 dir()函数 查看 当前 os.path 模块更多的功能;[可以自己尝试一下 os.path 更多的功能]


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #os包 #Python #今天我们来学习一下 #的内置包 #gt #OS #