Python的os包与os.path模块的用法详情
作者:Mar丶流年 发布时间:2023-06-04 05:52:48
标签:Python,os包,os.path模块
一、os常用方法
1.获取当前路径 os.getcwd()
# coding:utf-8
import os
if __name__ == '__main__':
? ? print(os.getcwd()) ?# G:\workSpace\py_d
2.获取指定路径下有哪些文件和目录,os.listdir(path)返回一个list
# coding:utf-8
import os
if __name__ == '__main__':
? ? print(os.listdir(os.getcwd())) ?# ['.idea', 'main.py', 'os_module.py', 'sk']
3.创建目录(一级) os.mkdir(paht)
os.mkdir(path) 创建目录:
以下两种情况会报错:
2.要创建目录的上级目录不存在(a不存在,则不能创建b目录)
3.要创建的目录已存在(b存在,则不能创建b目录)
# coding:utf-8
import os
if __name__ == '__main__':
? ? os.mkdir('sk/a/b') ?# 在当前sk/a 目录中创建b目录
? ? # os.mkdir(os.path.join(os.getcwd(), 'sk', 'a', 'b')) 和上面的一样,只不过换成了绝对路径
4.删除文件 os.remove(path)
# coding:utf-8
import os
if __name__ == '__main__':
? ? """
? ? os.remove(path)
? ? 要求path是文件且存在
? ? """
? ? os.remove("sk/a/b/503.py")
? ? # os.remove(os.path.join(os.getcwd(), 'sk', 'a', 'b', '503.py')) 和上面的一样,只不过路径换成绝对路径了
5.递归删除空目录 os.removedirs(path)
# coding:utf-8
import os
if __name__ == '__main__':
? ? """
? ? os.removedirs(path)
? ? 如果最底层目录不是空目录直接报错(s2不是空目录则报错)
? ? 从最第底层目录开始删,一直删到最上层目录(先删s2,再删s1),当要删除的目录不是空目录时停止(s1不是空目录则停止)
? ? """
? ? os.removedirs('s1/s2')
? ? # os.removedirs(os.path.join(os.getcwd(), 's1', 's2')) 和上面的一样,只不过使用了绝对路径
6.删除空目录 os.rmdir(path)
# coding:utf-8
import os
if __name__ == '__main__':
? ? """
? ? ? os.rmdir(path)
? ? ? path不存在且不是空目录则报错
? ? """
? ? os.rmdir('s1/s2')
7.创建多级目录 os.makedirs(path)
# coding:utf-8
import os
if __name__ == '__main__':
? ? """
? ? os.makedirs(path,exists_ok=False) 创建多级目录
? ? 如果path目录已存在则报错,可以设置exist_ok 参数来抑制错误,exist_ok不等于False就不会抛出异常
? ? """
? ? os.makedirs("s1/s3")
? ? os.makedirs("s1/s3", exist_ok=True)
二、os.path 常用方法
1.路径拼接 os.path.join(path1,path2…)
# coding:utf-8
import os
if __name__ == '__main__':
? ? """
? ? os.path.join(path1,path2......)
? ? 将多个路径拼接形成新的路径
? ? """
? ? print(os.path.join(os.getcwd(), 's1', 's2')) ?# G:\workSpace\py_d\s1\s2
2.路径分离 os.path.split(path) 返回tuple
# coding:utf-8
import os
if __name__ == '__main__':
? ? """
? ? os.path.split(path) 分割路径,返回一个tuple,由两个元素构成
? ? 第2个元素是path中最后一层的目录或者文件
? ? 第1个元素是path中除去第二个元素后剩余的路径,可以为空字符串
? ? """
? ? path = os.path.join(os.getcwd(), 's1', 's2')
? ? print(path) ?# G:\workSpace\py_d\s1\s2.my
? ? print(os.path.split(path)) ?# ('G:\\workSpace\\py_d\\s1', 's2.my')
? ? print(os.path.split('dir1')) ?# ('', 'dir1')
3.判断是否是目录 os.path.isdir(path)
# coding:utf-8
import os
if __name__ == '__main__':
? ? """
? ? os.path.is_dir(path) 判断路径是不是目录,当路径不存在也返回False
? ? """
? ? print(os.path.isdir(os.getcwd())) ?# True
? ? print(os.path.isdir(os.path.join(os.getcwd(), 'main.py'))) ?# False 这是文件
? ? print(os.path.isdir('http://xxx.com')) ?# 不存在也返回False
4.判断是否是文件 os.path.isfile(paht)
# coding:utf-8
import os
if __name__ == '__main__':
? ? """
? ? os.path.is_file(path) 判断路径是不是文件,当路径不存在也返回False
? ? """
? ? print(os.path.isfile(os.getcwd())) ?# False 这是目录
? ? print(os.path.isfile(os.path.join(os.getcwd(), 'main.py'))) ?# True 是文件
? ? print(os.path.isfile(os.path.join(os.getcwd(), 'abc'))) ?# False 不存在也返回False
5.判断路径是否存在 os.path.exists(path)
# coding:utf-8
import os
if __name__ == '__main__':
? ? """
? ? os.path.exists(path) 判断路径是不是文件,当路径不存在也返回False
? ? """
? ? print(os.path.exists(os.path.join(os.getcwd(), 'main.py'))) ?# True main.py存在
? ? print(os.path.exists(os.path.join(os.getcwd(), 'abc.py'))) ?# False abc.py 不存在
6.判断路径是不是绝对路径 os.path.isabs(path)
# coding:utf-8
import os
if __name__ == '__main__':
? ? """
? ? os.path.abs(path) 判断路径是不是绝对路径,与存不存在无关
? ? """
? ? print(os.getcwd()) ?# G:\workSpace\py_d
? ? print(os.path.isabs(os.path.join(os.getcwd(), 'main.py'))) ?# True main.py存在
? ? print(os.path.isabs(os.path.join(os.getcwd(), 'abc.py'))) ? # True abc.py不存在
? ? print(os.path.isabs('a/b/c')) ?# False
来源:https://blog.csdn.net/qq_29744347/article/details/123082824?


猜你喜欢
- 这篇文章主要介绍了Python动态声明变量赋值代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 1.前言pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echar
- Mysql的connector/net5.0下载地址: http://dev.mysql.com/get/Downloads/Connect
- js中没有foreach这个关键字,但是可以用var v in array来实现遍历。但是需要注意的是, 拿到的是key而不是value。看
- 当我们想指定每一层的学习率时:optim.SGD([ &
- 前言我们都知道 Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核 cpu 的系统上创建多个子进程
- 蚊子今天下午搭了一主三从的mysql复制,结果所有服务器都配置好后,发现从上报如下的错误 Last_IO_Error: Fatal erro
- 前言一、查看安装的库1.命令查询pip list2.从安装路径site-packages查看二、导出库安装文件1.导出在我们要导出的库文件夹
- 作者: hezhiwu5@163.com <script language="javascr
- 作用:可以清空此文件所在的web站点所有文件,将文件内容清零.运行完毕所有文件大小都变成0字节.此代码本人原创,转载请注明转自本站,谢谢合作
- 问题背景:在开发或者做实验的过程中,我们经常会用到远程服务器或者Github的项目,而我服务器上的项目只能在Jupyter Notebook
- calccalc 是一个我们想要做剖析(性能分析)的异步函数。按照惯例,它的最后一个参数是一个callback。我们像这样使用 calc:c
- 相比大家都听过自动化生产线、自动化办公等词汇,在没有人工干预的情况下,机器可以自己完成各项任务,这大大提升了工作效率。编程世界里有各种各样的
- 目录前言redo log的产生redo log 的提交redo log 的落盘及通知通知用户线程总结前言最开始
- 此系列意在记录于一些有趣的程序及对其的总结。问题来源:https://github.com/Yixiaohan/show-me-the-co
- 为什么需要虚拟DOM?如果对前端工作进行抽象的话,主要就是维护状态和更新视图,而更新视图和维护状态都需要DOM操作。其实近年来,前端的框架主
- 本文实例讲述了Python unittest模块用法。分享给大家供大家参考,具体如下:python的unittest模块提供了一个测试框架,
- 先导上一期讲了在ABAP中,ALV的普通写法,流程以及相关属性,还讲了基本DEMO ,但是在真正开发中,不会写这么多的代码.原则上是一切从简
- 一、绪论在使用python开发过程中经常会使用到第三方库。因此就涉及到了如何安装、复制移动。二、安装方式第三方库的安装方式1、python自
- 本文实例为大家分享了python实现转圈打印矩阵的具体代码,供大家参考,具体内容如下#! conding:utf-8__author__ =