python os相关操作
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相关操作的更多相关文章
- python文件相关操作
Python文件相关操作 打开文件 打开文件,采用open方法,会将文件的句柄返回,如下: f = open('test_file.txt','r',encoding='utf-8') 在上面的代码中 ...
- python subprocess相关操作
python subprocess常用操作 1.subprocess模块的常用函数 函数 描述 subprocess.run() Python 3.5中新增的函数.执行指定的命令,等待命令执行完成后返 ...
- python 集合相关操作
集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集 ...
- python集合相关操作
集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集 ...
- python PIL相关操作
项目中需要用python生成二维码,这里记录一下相关PIL相关操作. RGBA问题: 需要将图片A粘贴到图片B上,之前没有注意透明度问题,A的背景是透明的,粘贴到B上后,A的周围是黑的.后来才发现是P ...
- Python容器相关操作
(集合与字典除外)的容器相关操作 (1)容器的拼接 >>> 'abc' + 'def' 'abcdef' (2)容器的重复 >>> (1, 2) * 3 (1, 2 ...
- python selenium 相关操作
selenium : 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Fi ...
- Python系统(os)相关操作
文件操作 python中常用于文件处理的模块有os,shutil等. 1 创建文件 文件的创建可以使用open()函数,如下创建一个test_file.txt的文件: >>> wit ...
- python 系统相关操作
1.文件 open()代开文件或者创建文件 fout=open('oops.txt','wt') print('Oops, I created a file.',file=fout) fout.clo ...
随机推荐
- Java学习笔记-基础语法ⅩⅠ-UDP、TCP
网络编程 三要素:IP地址.端口.协议 IP地址:使用ipconfig查看,如果装了VM的话,会有VMnet1.VMnet8和WLAN,net1不能从虚拟机到主机,net8不能从主机到虚拟机,net0 ...
- zabbix5.0报错PHP时区未设置(配置参数"date.timezone")
解决办法 : #1.编辑文件/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf,取消注释并设置为所在地时区 vim /etc/opt/rh/rh-php72/php- ...
- 一个NIH综合症患者的自白
一个NIH综合症患者的自白 欢迎关注我的博客,️点他即可. NIH: Not Invented Here 当人们看到一款产品或者任何涉及创意的东西时,常常会有一个想法--这是抄的.也就是说它并非原创, ...
- Kubernetes API 基础
APIServer 在kubernetes架构概念层面上,Kubernetes由一些具有不同角色的服务节点组成.而master的控制平面由 Apiserver Controller-manager 和 ...
- There appears to be trouble with your network connection. Retrying…
yarn 错误There appears to be trouble with your network connection. Retrying- 原因:yarn超时 解决途径: #查看代理 yar ...
- Fail2ban 命令详解 fail2ban-server
Fail2ban的服务端操作命令,用于启动一个Fail2ban服务. root@local:~# fail2ban-server --help Usage: /usr/bin/fail2ban-ser ...
- Spring Security OAuth正式终止维护,已从官网下架
Spring Security团队正式宣布Spring Security OAuth终止维护. 目前官网的主页已经高亮提醒彻底停止维护. 旧的Spring Security OAuth项目终止到2.5 ...
- Java 基础常见知识点&面试题总结(上),2022 最新版!| JavaGuide
你好,我是 Guide.秋招即将到来,我对 JavaGuide 的内容进行了重构完善,公众号同步一下最新更新,希望能够帮助你. 基础概念与常识 Java 语言有哪些特点? 简单易学: 面向对象(封装, ...
- SQL Server各版本序列号/激活码/License/秘钥
SQL Server 2019 Enterprise:HMWJ3-KY3J2-NMVD7-KG4JR-X2G8G Enterprise Core:2C9JR-K3RNG-QD4M4-JQ2HR-846 ...
- Typora图片与阿里云OSS图床的结合之旅
图床? 专门用于存放图片,并允许用户通过独一的外链进行特定图片资源的访问 为什么是阿里云OSS(Object Storage Service) 码云开源需要审核,已经不能作为免费的图床使用(2022年 ...