Python学习之os包使用教程详解


Posted in Python onMarch 21, 2022

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

os 模块

文件与目录函数介绍

函数名 参数 介绍 举例  返回值
getcwd 没有参数 返回当前路径 os.getcwd() 字符串
listdir path 返回指定路径下所有的文件或文件夹 os.listdir(‘c://windows’) 返回一个列表
makedir path mode 创建多级文件夹 os.makedirs(‘d://pycharm/py’) 无返回值
removedirs path 删除多级路径下的文件夹 os.removedirs(‘d://pycharm/py’) 无返回值
rename oldname、newname 将文件或文件夹重命名 os.rename(‘d://pycharm’,‘d://pycharm01’) 无返回值
rmdir path 只能删除空文件夹 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' 文件夹成功

Python学习之os包使用教程详解

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

Python学习之os包使用教程详解

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

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)

Python学习之os包使用教程详解

注意:如果不指定创建文件夹的路径,直接利用 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

# >>> 执行效果如下图

Python学习之os包使用教程详解

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

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

path 模块

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

​path 模块常用方法

函数名 参数 介绍 举例  返回值
exists path 文件或路径是否存在 os.path.exists(‘d://test/’) bool类型
isdir path 是否是路径 os.path.isdir(‘d://test/’) bool类型
isabs path 是否是绝对路径 os.isabs(‘test’) bool类型
isfile path 是否是文件 os.path.isfile(‘d://test.py’) bool类型
join path, path* 通过路径的’//'将其用字符串合并 os.path.join(‘d://’,‘test’) 字符串
split path 通过路径的’//'以最后一层路径为及基准切割成元组 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 更多的功能]

以上就是Python学习之os包使用教程详解的详细内容,更多关于Python os包的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python中mechanize库的简单使用示例
Jan 10 Python
python中的__init__ 、__new__、__call__小结
Apr 25 Python
Python操作串口的方法
Jun 17 Python
python在不同层级目录import模块的方法
Jan 31 Python
Python工程师面试必备25条知识点
Jan 17 Python
小白如何入门Python? 制作一个网站为例
Mar 06 Python
Python获取二维矩阵每列最大值的方法
Apr 03 Python
python利用pandas将excel文件转换为txt文件的方法
Oct 23 Python
python 读取dicom文件,生成info.txt和raw文件的方法
Jan 24 Python
利用Python实现Shp格式向GeoJSON的转换方法
Jul 09 Python
python制作微博图片爬取工具
Jan 16 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
Feb 22 Python
分享几种python 变量合并方法
Mar 20 #Python
python 使用tkinter与messagebox写界面和弹窗
Mar 20 #Python
python中的sys模块和os模块
Mar 20 #Python
python_tkinter事件类型详情
Mar 20 #Python
再谈python_tkinter弹出对话框创建
python_tkinter弹出对话框创建
Mar 20 #Python
Python读写yaml文件
Mar 20 #Python
You might like
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
PHP 查找字符串常用函数介绍
2012/06/07 PHP
PHP四大安全策略
2014/03/12 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
JavaScript 撑出页面文字换行
2009/06/15 Javascript
在模板页面的js使用办法
2010/04/01 Javascript
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
初识Node.js
2015/03/20 Javascript
解决WordPress使用CDN后博文无法评论的错误
2015/12/15 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
vue-cli配置环境变量的方法
2018/07/09 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
2019/03/22 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
python端口扫描系统实现方法
2014/11/19 Python
浅析Python中的多条件排序实现
2016/06/07 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
python opencv 二值化 计算白色像素点的实例
2019/07/03 Python
利用python开发app实战的方法
2019/07/09 Python
pandas中遍历dataframe的每一个元素的实现
2019/10/23 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
使用python去除图片白色像素的实例
2019/12/12 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
基于python及pytorch中乘法的使用详解
2019/12/27 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
汽车驾驶求职信
2013/10/25 职场文书
仓库理货员岗位职责
2013/12/18 职场文书
英语教师求职信
2014/06/16 职场文书
服务理念标语
2014/06/18 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
防汛通知
2015/04/25 职场文书
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
MySQL事务操作的四大特性以及并发事务问题
2022/04/12 MySQL