os简单介绍

os 模块提供了非常丰富的方法用来处理文件和目录

os关于目录路径的方法

 # 获取当前路径
path = os.getcwd() # 获取当前绝对路径
os.path.abspath(path) # 创建一级目录
os.mkdir(path) # 删除空目录
os.rmdir(path) # 创建多级目录
os.makedirs(path) # 删除多级空目录
os.removedirs(path) # 修改路径为path
os.chdir(path)

包含知识点

  • rmdir的path,如果目录非空,则抛出一个OSError异常
  • 多级目录是指 /test/testing/test,如果三个目录都不存在则都会创建

os关于文件的方法

# 获取当前路径下所有文件、文件夹
os.listdir(path) # 创建文件方式一
f = os.open(path + "test.txt", flags=os.O_CREAT | os.O_RDWR ) # 写入文件
os.write(f, bytes("",encoding="utf-8")) # 读取文件
print(os.read(f,12)) # 关闭文件
os.close(f) # 重命名文件
os.rename(path + "test.txt", path + "tests.txt") # 删除文件
os.remove(path + "tests.txt")
# 递归返回path下的目录(包括path目录)、子目录、文件名的三元组
for root, dirname, filenames in os.walk(path):
logzeros.debug(root)
logzeros.debug(dirname)
logzeros.debug(filenames)

包含知识点

listdir 返回的是一个列表,若没有文件则返回空列表

os.write(fd, str) 用于写入bytes字符串到文件描述符 fd 中. 返回实际写入的字符串长度

os.read(fd,n) 用于从文件描述符 fd 中读取最多 n 个字节,返回包含bytes字符串

关于 open() 可看此博客:https://www.cnblogs.com/poloyy/p/12350158.html

关于 os.walk(path) 可看此博客:https://www.cnblogs.com/poloyy/p/12349230.html

os.path相关

os.path.realpath(__file__)

获取当前文件所在目录

path = os.path.realpath(__file__)
print(path)

运行结果

C:\Users\user\Desktop\py\moocInterface\learn\os_path_learn.py

os.path.abspath(path)

获取当前path所在路径

path = os.path.abspath(".")
print(path) path = os.path.abspath(os.path.realpath(__file__))
print(path)

运行结果

C:\Users\user\Desktop\py\moocInterface\learn
C:\Users\user\Desktop\py\moocInterface\learn\os_path_learn.py

第一行代码跟 os.getcwd() 很像

path = os.getcwd()
print(path)

运行结果

C:\Users\user\Desktop\py\moocInterface\learn

os.path.dirname(path)

返回path的所在目录的路径

print(os.path.dirname(r'C:\Users\user\Desktop\py\moocInterface\learn\os_path_learn.py'))

print(os.path.dirname(r'C:\Users\user\Desktop\py\moocInterface\learn'))

# 表示获取当前文件所在目录的上一级目录,即项目所在目录C:\Users\user\Desktop\py\moocInterface
print(os.path.dirname(os.path.abspath('.')))

运行结果

C:\Users\user\Desktop\py\moocInterface\learn
C:\Users\user\Desktop\py\moocInterface
C:\Users\user\Desktop\py\moocInterface

os.path.split(path)

分离文件名和扩展名,返回(filename文件名,fileextension文件扩展名)二元组

# 目录
os.path.split(os.getcwd()) # 文件
os.path.split(os.path.realpath(__file__))

运行结果

('C:\\Users\\user\\Desktop\\py\\moocInterface', 'learn')
('C:\\Users\\user\\Desktop\\py\\moocInterface\\learn', 'os_path_learn.py')

os.path.join()

用于路径拼接,将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

# 拼接目录
new_path = os.path.join(os.getcwd(), "test")
print(new_path) # 拼接文件
new_path = os.path.join(os.getcwd(), "test.txt")
print(new_path) # 拼接多重目录
new_path = os.path.join(os.getcwd(), "test/test/test")
print(new_path) # 拼接多个目录、文件
new_path = os.path.join(os.getcwd(), "test", "Test", "ok.txt")
print(new_path)

运行结果

C:\Users\user\Desktop\py\moocInterface\learn\test
C:\Users\user\Desktop\py\moocInterface\learn\test.txt
C:\Users\user\Desktop\py\moocInterface\learn\test/test/test
C:\Users\user\Desktop\py\moocInterface\learn\test\Test\ok.txt
 

Python常用库 - os库的更多相关文章

  1. Python常用的标准库以及第三方库

    Python常用的标准库以及第三方库有哪些?   20个必不可少的Python库也是基本的第三方库 读者您好.今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们.他们 ...

  2. python学习笔记系列----(八)python常用的标准库

    终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...

  3. Python常用的标准库以及第三方库有哪些?

    20个必不可少的Python库也是基本的第三方库 读者您好.今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们.他们是: Requests.Kenneth Reitz ...

  4. Python 常用的标准库以及第三方库有哪些?

    作者:史豹链接:https://www.zhihu.com/question/20501628/answer/223340838来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  5. python 常用的标准库及第三方库

    标准库Python拥有一个强大的标准库.Python语言的核心只包含数字.字符串.列表.字典.文件等常见类型和函数,而由Python标准库提供了系统管理.网络通信.文本处理.数据库接口.图形系统.XM ...

  6. Python常用的标准库及第三方库

    标准库Python拥有一个强大的标准库.Python语言的核心只包含数字.字符串.列表.字典.文件等常见类型和函数,而由Python标准库提供了系统管理.网络通信.文本处理.数据库接口.图形系统.XM ...

  7. Python常用的第三方库

    最近学习python 做些数据挖掘相关的练习,涉及到很多第三方的库,所以做一总结. Setuptools 可以让程序员更方便的创建和发布 Python 包,特别是那些对其它包具有依赖性的状况. 我特别 ...

  8. 常用的os库笔记

    1.创建文件 import os os.mkdir('d:/log') 2.重命名文件 import os os.rename('d:/log','d:/newlog') 3.删除文件 import ...

  9. python 常用的一些库

    AllPairs 2.0.1Appium-Python-Client 0.24asn1crypto 0.24.0attrs 17.4.0AutoItLibrary 1.1bcrypt 3.1.4bea ...

随机推荐

  1. 换装WIN10(windows)那点儿事,换装操作系统一文通,玩转安装操作系统

    目录 1. 按 2. win10对电脑配置的要求 3. 原版镜像下载 4. 制作U盘系统盘 5. 硬盘分区调整 6. 设置开机时从U盘启动 7. 安装win10 8. 如何激活WIN10 9. 如何给 ...

  2. 关于neo4j初入门(1)

    图形数据库也称为图形数据库管理系统或GDBMS. Neo4j的官方网站:http://www.neo4j.org Neo4j的优点 它很容易表示连接的数据 检索/遍历/导航更多的连接数据是非常容易和快 ...

  3. 1.异常(Error和Exception)

    什么是异常 比如上午我们一般是开车去上班,正常情况下,一般都不会迟到,但是今天突然有个问题,车坏了或者限行了,于是乎你改坐公交了,就有可能会迟到,这就属于一种异常的情况.在实际生活中呢,可能会遇到很多 ...

  4. Java中SMB的相关应用

    目录 SMB 服务操作 Ⅰ SMB简介 Ⅱ SMB配置 2.1 Windows SMB Ⅲ 添加SMB依赖 Ⅳ 路径格式 Ⅴ 操作共享 Ⅵ 登录验证 SMB 服务操作 Ⅰ SMB简介 ​ SMB(全称 ...

  5. Linux系统实时数据同步inotify+rsync

    一.inotify简介 inotify是Linux内核的一个功能,它能监控文件系统的变化,比如删除.读.写和卸载等操作.它监控到这些事件的发生后会默认往标准输出打印事件信息.要使用inotify,Li ...

  6. vue2.x中使用三元表达式绑定class的时候遇到的坑

    这个确实是个坑,而且是来自文档的坑. 首先先看文档对这个的解释: 从实际的代码书写上,文档中的写法,vs code没报错,但是浏览器报了一堆的错. 我试了很多遍,发现类名必须是要用引号引起来,页面上语 ...

  7. Java虚拟机系列一:一文搞懂 JVM 架构和运行时数据区

    前言 之前写博客一直比较随性,主题也很随意,就是想到什么写什么,对什么感兴趣就写什么.虽然写起来无拘无束,自在随意,但也带来了一些问题,每次写完一篇后就要去纠结下一篇到底写什么,看来选择太多也不是好事 ...

  8. vuex之state(一)

    我的理解 个人认为,不用说得太过深奥,vuex其实就是把一个应用的某些数据统一管理起来,以便其他的组件更方便的操作该数据. 为什么使用vuex 当项目结构越来越复杂,组件的多层嵌套使得数据传递非常繁琐 ...

  9. Dubbo Cluster集群那点你不知道的事。

    这是why技术的第33篇原创文章 本周是在家办公的一周,上面的图就是我在家的工位. 工欲善其事,必先利其器.在家办公,我是认真的. 在家里开发的时候有需求是这样的:一个如果接口调用失败,需要自动进行重 ...

  10. Javascript小白经典题型(二)

    51. 输出的是什么? function getInfo(member, year) { member.name = "Lydia"; year = "1998" ...