一:学习内容

  • os模块
  • ospath模块
  • 获取指定目录下所有文件和目录

二:os模块

包含了普遍的操作系统功能,需要导入该模块:import os

当前所在位置目录结构为:

  • 目录操作

1.获取当前目录-相对路径
print(os.curdir)

2.获取当前工作目录,即当前py脚本所在目录-绝对路径
print(os.getcwd())

3.以列表的形式返回指定目录下的所有的文件(包括目录),只拿到最上层

print(os.listdir(r"F:\python\test02"))

4.在当前目录下创建新目录,支持相对路径和绝对路径

os.mkdir("test002")

5.在当前目录下删除目录
os.rmdir("test002")  #没有文件删除会报错

  • 文件操作

1.获取文件属性
print(os.stat("test02.txt"))

2.重命名文件
os.rename("test02.txt","python_test.txt")

3.删除普通文件

os.remove("python_test.txt")

三:ospath模块

包含了普遍的操作系统功能,需要导入该模块:import os

当前所在位置目录结构为:

1.查看当前的绝对路径
print(os.path.abspath("."))
print(os.path.abspath("./test002"))

2.拼接路径
p1 = r"F:\python\test02"
p2 = "python_test.txt"
#注意:参数2开始的地方不要有斜杠,即python_test.txt的p前面不要有斜杠
print(os.path.join(p1,p2))

3.拆分路径
p5 = r"F:\python\test02"
#把最后的路径单独拆成一个
print(os.path.split(p5))

4.获取扩展名 .txt
p6 = r"F:\python\test02\python02.py"
print(os.path.splitext(p6))

5.判断是否是目录,目录需要真实存在
p7 = r"F:\python\test"
print(os.path.isdir(p7))

6.判断是否是文件,文件需要真实存在
p8 = r"F:\python\test02\python02.py"
print(os.path.isfile(p8))

7.判断路径(目录或文件)是否存在
p9 = r"F:\python\test02"
print(os.path.exists(p9))

p9 = r"F:\python\test02\python02.py"
print(os.path.exists(p9))

8.获取文件大小,按字节数统计,一个汉字2个字节
p10 = r"F:\python\test02\python_test.txt"
print(os.path.getsize(p10))

9.获取文件目录
p11 = r"F:\python\test02\python_test.txt"
print(os.path.dirname(p11))

10.获取文件名
p12 = r"F:\python\test02\python_test.txt"
print(os.path.basename(p12))

四:获取指定目录下所有文件和目录

包含了普遍的操作系统功能,需要导入该模块:import os

当前所在位置目录结构为:

代码如下:

import os

def getAllDir(path,sp=""):
    #处理当前目录下所有文件
    dirList = os.listdir(path)
    sp += "  "
    #处理每个文件
    for fileName in dirList:
        fileAbsPath = os.path.join(path,fileName)
        if os.path.isdir(fileAbsPath):
            print(sp + "目录为:", fileName)
            getAllDir(fileAbsPath,sp)
        else:
            print(sp + "文件为:",fileName)

path = r"F:\python"
getAllDir(path)

运行结果为:

python3笔记十九:os和ospath模块的更多相关文章

  1. python3.4学习笔记(十九) 同一台机器同时安装 python2.7 和 python3.4的解决方法

    python3.4学习笔记(十九) 同一台机器同时安装 python2.7 和 python3.4的解决方法 同一台机器同时安装 python2.7 和 python3.4不会冲突.安装在不同目录,然 ...

  2. (C/C++学习笔记) 十九. 模板

    十九. 模板 ● 模板的基本概念 模板(template) 函数模板:可以用来创建一个通用功能的函数,以支持多种不同形参,进一步简化重载函数的函数体设计. 语法: template <<模 ...

  3. OpenCV学习笔记十九:opencv_gpu*模块

    一,简介: 基于GPU加速的opencv算法库.

  4. 四十九 常用内建模块 urllib

    urllib提供了一系列用于操作URL的功能. Get urllib的request模块可以非常方便地抓取URL内容,也就是发送一个GET请求到指定的页面,然后返回HTTP的响应: 例如,对豆瓣的一个 ...

  5. python3笔记十四:python可变与不可变数据类型+深浅拷贝

    一:学习内容 python3中六种数据类型 python赋值 python浅拷贝 python深拷贝 二:python3六种数据类型 1.六种数据类型 Number(数字) string(字符串) L ...

  6. python 学习笔记十九 django深入学习四 cookie,session

    缓存 一个动态网站的基本权衡点就是,它是动态的. 每次用户请求一个页面,Web服务器将进行所有涵盖数据库查询到模版渲染到业务逻辑的请求,用来创建浏览者需要的页面.当程序访问量大时,耗时必然会更加明显, ...

  7. swift 笔记 (十九) —— 协议

    协议(Protocols) 协议仅是用定义某些任务或者是功能必须的方法和属性. 类似于java里的interface的作用.但协议并不会实现详细的功能. 我猜这个名字源于OO中提到的"契约& ...

  8. JSTL 标签库 使用(web基础学习笔记十九)

    标签库概要: 一.C标签库介绍 1.1.<c:> 核心标签库  JSTL 核心标签库(C标签)标签共有13个,功能上分为4类:1.表达式控制标签:out.set.remove.catch2 ...

  9. angular学习笔记(十九)-指令修改dom

    本篇主要介绍angular使用指令修改DOM: 使用angular指令可以自己扩展html语法,还可以做很多自定义的事情.在后面会专门讲解这一块的知识,这一篇只是起到了解入门的作用. 与控制器,过滤器 ...

随机推荐

  1. @Resource与@Autowired注解的区别踩坑者入

    一.写本博文的原因 有些童鞋搞不为什么要用@Resource或者@Autowired,咱们一起研究下 @Resource默认按照名称方式进行bean匹配,@Autowired默认按照类型方式进行bea ...

  2. Sklearn使用良心完整入门教程

    The complete .ipynb file can be download through my share in onedrive:https://1drv.ms/u/s!Al86h1dThX ...

  3. 06 基本数据结构 - 双端队列(Deque)

    一.双端队列(Deque) - 概念:deque(也称为双端队列)是与队列类似的项的有序集合.它有两个端部,首部和尾部,并且项在集合中保持不变. - 特性:deque 特殊之处在于添加和删除项是非限制 ...

  4. npm操作命令

    查看所有高级的npm moudles npm list --depth= 查看所有全局安装的模块 npm list --depth= -global 查找npm全局安装模块路径 npm config ...

  5. openstack Rocky系列之keystone:(一)keystone的启动

    keystone在httpd的入口执行文件为/usr/bin/keystone-wsgi-public 查看文件/usr/bin/keystone-wsgi-public,根据代码,看到主要是这几行代 ...

  6. c# HttpClient和HttpWebRequest添加Basic类型的Authentication认证

    c#项目中用到调用客户接口,basic身份认证,base64格式加密(用户名:密码)贴上代码以备后用 1.使用HttpClient实现basic身份认证 using (HttpClient clien ...

  7. UVA - 1640 The Counting Problem (数位dp)

    题意:统计l-r中每种数字出现的次数 很明显的数位dp问题,虽然有更简洁的做法但某人已经习惯了数位dp的风格所以还是选择扬长避短吧(说白了就是菜啊) 从高位向低位走,设状态$(u,lim,ze)$表示 ...

  8. 最近老是有兄弟问我,Vue双向绑定的原理,以及简单的原生js写出来实现,我就来一个最简单的双向绑定,原生十行代码让你看懂原理

    废话不多说直接看效果图 代码很好理解,但是在看代码之前需要知道Vue双向绑定的原理其实就是基于Object.defineProperty 实现的双向绑定 官方传送门 这里我们用官方的话来说Object ...

  9. DevExpress ASP.NET Core v19.1版本亮点:Pivot Grid控件等

    行业领先的.NET界面控件DevExpress 发布了v19.1版本,本文将以系列文章的方式为大家介绍DevExpress ASP.NET Core Controls v19.1中新增的一些控件及增强 ...

  10. C++关于构造函数 和 析构函数 能否抛出异常的讨论

    构造函数和析构函数分别管理对象的建立和释放,负责对象的诞生和死亡的过程.当一个对象诞生时,构造函数负责创建并初始化对象的内部环境,包括分配内存.创建内部对象和打开相关的外部资源,等等.而当对象死亡时, ...