python os模块常用操作

什么时候使用os模块?

操作文件及文件夹(对于文件及文件夹的增删改查)

1.获取当前文件夹的工作目录

注意不是当前文件所在文件,即当前执行python文件的文件夹

print(os.getcwd())
print(os.path.abspath(os.curdir))

2.修改当前工作目录

切换工作目录后,os.getcwd()、os.path.abspath(os.curdir)也会出现改变,需要注意工作目录需要是存在的文件夹

os.chdir("test")

3.创建多级目录

注意第一个目录前不要添加"/"

os.makedirs("test2/test3/test4")

4.创建单级目录

os.mkdir("test5")

5.删除单个文件夹(文件夹为空时)

os.rmdir("test5")

6.获取一个文件的各种信息

  • st_mode: inode 保护模式
  • st_ino: inode 节点号。
  • st_dev: inode 驻留的设备。
  • st_nlink: inode 的链接数。
  • st_uid: 所有者的用户ID。
  • st_gid: 所有者的组ID。
  • st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
  • st_atime: 上次访问的时间。
  • st_mtime: 最后一次修改的时间。
  • st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)
os.stat(os.path.join(os.getcwd(), "demo_os.py"))

7.获取当前路径分隔符

Windows平台为" \ " ,Linux平台为" / "

os.sep

8.获取换行符

os.linesep

9.执行系统命令

可以同时执行多条命令,使用 & 分隔,存在命令注入漏洞

os.system(command)

10.批量删除文件夹(所有文件夹为空时)

os.removedirs("test2/test3/test4")

11.重命名文件/文件夹

os.rename("test.py","test3.py")
os.rename("test", "test3")

12.获取路径下的所有文件及文件夹(以集合形式返回)

os.listdir("D:\python_workspace\os_subprocess")

13.递归显示一个路径下的文件及文件夹

dir_path:文件夹路径,dir_names:文件夹名称(集合形式),filenames:文件名称(集合形式),三个参数是一对一关系

for dir_path,dir_names,filenames in os.walk("D:\python_workspace\os_subprocess"):
print("dir_path:",dir_path)
print("dir_names:",dir_names)
print("filenames:",filenames)

python os.path常用操作

1.返回当前文件的绝对路径

os.path.abspath(__file__)

2.将路径分割成文件夹和文件名

如:d:\python_workspace\os_subprocess\demo_os.py分割后:

('d:\python_workspace\os_subprocess', 'demo_os.py')

os.path.split(os.path.abspath(__file__))

3.判断一个路径(文件/文件夹)是否存在

返回True:存在;返回False:不存在

os.path.exists("test3")
os.path.exists("test3.py")

4.判断一个路径时绝对路径还是相对路径

返回True:绝对路径;返回False:相对路径

os.path.isabs(os.path.abspath(__file__))
os.path.isabs("test3.py")

5.判断是否是一个存在的文件

返回True:是一个文件;返回False:不是一个文件

os.path.isfile("test3.py")

6.判断是否是一个存在的文件夹

返回True:是一个文件夹;返回False:不是一个文件夹

os.path.isdir("test3")

7.以当前平台的分隔符拼接字符串为路径

os.path.join(os.path.abspath(__file__), "..", "test3.py")

8.获取文件的大小(字节)

os.path.getsize(os.path.abspath(__file__))

9.获取最后的存取时间

返回的为时间戳

os.path.getatime(os.path.abspath(__file__))

10.获取最后的修改时间

返回的是时间戳

os.path.getmtime(os.path.abspath(__file__))

11.规范化路径,大写变小写,斜杆变为平台识别的斜杠

os.path.normcase("d://python_workspace//os_subprocess//Demo_os.py//..//test3.py")

12.规范化路径,斜杠规范化,识别“..”返回上一级目录

返回:d:\python_workspace\os_subprocess\test3.py

os.path.normpath("d://python_workspace//os_subprocess//Demo_os.py//..//test3.py")

python os执行命令操作

1.os.system()

可以获取执行后的返回信息和返回状态,执行后返回两行结果,第一行是结果,第二行时状态信息,命令成功执行返回0,否则返回1

可以执行多个命令,通过 & 或者 ; 分隔

2.os.popen()

不仅执行命令并且返回执行后的信息对象(常用于获取执行命令后的返回信息),是通过一个管道文件返回

需要通过read()方法读取

python os相关操作的更多相关文章

  1. python文件相关操作

    Python文件相关操作 打开文件 打开文件,采用open方法,会将文件的句柄返回,如下: f = open('test_file.txt','r',encoding='utf-8') 在上面的代码中 ...

  2. python subprocess相关操作

    python subprocess常用操作 1.subprocess模块的常用函数 函数 描述 subprocess.run() Python 3.5中新增的函数.执行指定的命令,等待命令执行完成后返 ...

  3. python 集合相关操作

    集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集 ...

  4. python集合相关操作

    集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集 ...

  5. python PIL相关操作

    项目中需要用python生成二维码,这里记录一下相关PIL相关操作. RGBA问题: 需要将图片A粘贴到图片B上,之前没有注意透明度问题,A的背景是透明的,粘贴到B上后,A的周围是黑的.后来才发现是P ...

  6. Python容器相关操作

    (集合与字典除外)的容器相关操作 (1)容器的拼接 >>> 'abc' + 'def' 'abcdef' (2)容器的重复 >>> (1, 2) * 3 (1, 2 ...

  7. python selenium 相关操作

    selenium : 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Fi ...

  8. Python系统(os)相关操作

    文件操作 python中常用于文件处理的模块有os,shutil等. 1 创建文件 文件的创建可以使用open()函数,如下创建一个test_file.txt的文件: >>> wit ...

  9. python 系统相关操作

    1.文件 open()代开文件或者创建文件 fout=open('oops.txt','wt') print('Oops, I created a file.',file=fout) fout.clo ...

随机推荐

  1. Mathtype无限试用

    PS:本文方法参考网上搜集的内容,仅做记录. 首先,默认大家都已安装Mathtype软件.如果没装的话,安装下就行.建议安装Mathtype国际版软件,因为国产mathtype会延长失败.如果失败的话 ...

  2. springcloud 断路器

    https://www.jb51.net/article/138572.htm 参考资料: http://www.cnblogs.com/ulysses-you/p/7281662.html http ...

  3. SQL如何用表A更新表B

    文章标题很短,因为问题的描述过于具体,标题就会显得过长. 这个问题更为准确地描述应该是这样:表结构雷同或者有相似字段的两张表A和B,如何用A表的字段数据去更新B表字段的数据? 操作方法: 1 upda ...

  4. vscode的一些优化设置

    @ 目录 编辑代码区的字体设置 控制台字体设置 设置文件自动保存 自动猜测文件编码,防止乱码 关闭vscode的受限模式 取消每一次打开vscode都默认打开上次编辑的文件 编辑代码区的字体设置 控制 ...

  5. Spring Ioc源码分析系列--容器实例化Bean的四种方法

    Spring Ioc源码分析系列--实例化Bean的几种方法 前言 前面的文章Spring Ioc源码分析系列--Bean实例化过程(二)在讲解到bean真正通过那些方式实例化出来的时候,并没有继续分 ...

  6. Redis - 为什么 Redis 是单线程的?

    Redis中work线程是单线程的.也就是对于业务数据的操作是单线程的. Redis中存在多线程操作 异步关闭文件 异步将缓冲区冲洗到磁盘文件中 异步删除键值对 Redis是基于内存的,所以cpu不是 ...

  7. JAVA - 线程从创建到死亡的几种状态都有哪些?

    JAVA - 线程从创建到死亡的几种状态都有哪些? 新建( new ):新创建了一个线程对象. 可运行( runnable ):线程对象创建后,其他线程(比如 main 线程)调用了该对象 的 sta ...

  8. 接口测试postman深度挖掘应用③--postman终结篇

    上一章节我们介绍了postman的变量测试以及导入数据测试基本上技术性的东西已经差不过了,这篇文章再系统性的介绍一下. 一.下载 官网:https://www.postman.com 1.选择需要下载 ...

  9. 【实操干货】做好这 16 项优化,你的 Linux 操作系统焕然一新

    大家好,这次跟大家谈谈又拍云的操作系统优化方案.往简单地说,我们使用的 Linux 操作系统主要都是基于 CentOS6/7 的精简和优化.往复杂地说,则是我们有两套系统,业务上使用的定制 Linux ...

  10. 掘地三尺搞定 Redis 与 MySQL 数据一致性问题

    Redis 拥有高性能的数据读写功能,被我们广泛用在缓存场景,一是能提高业务系统的性能,二是为数据库抵挡了高并发的流量请求,点我 -> 解密 Redis 为什么这么快的秘密. 把 Redis 作 ...