Python os模块详解

os模块与目录相关的函数

与目录相关的函数如下:

os.getcwd():获取当前目录。

os.chdir(path):改变当前目录。

os.fchdir(fd):通过文件描述利改变当前目录。该函数与上一个函数的功能基本相似,只是该函数以文件描述符作为参数来代表目录。

下面程序测试了与目录相关的函数的用法:

import os# 获取当前目录
print(os.getcwd())  # G:\publish\codes\12.7
# 改变当前目录
os.chdir('../12.6')
# 再次获取当前目录
print(os.getcwd())  # G:\publish\codes\12.6

上面程序示范了使用 getcwd() 来获取当前目录,也示范了使用 chdir() 来改变当前目录。

os.chroot(path):改变当前进程的根目录。

os.listdir(path):返回 path 对应目录下的所有文件和子目录。

os.mkdir(path[, mode]):创建 path 对应的目录,其中 mode 用于指定该目录的权限。该 mode参数代表一个 UNIX 风格的权限,比如 0o777 代表所有者可读/可写/可执行、组用户可读/可写/可执行、其他用户可读/可写/可执行。

os.makedirs(path[, mode]):其作用类似于 mkdir(),但该函数的功能更加强大,它可以边归创建目录。比如要创建 abc/xyz/wawa 目录,如果在当前目录下没有 abc 目录,那么使用 mkdir() 函数就会报错,而使用 makedirs() 函数则会先创建 abc,然后在其中创建 xyz 子目录,最后在 xyz 子目录下创建 wawa 子目录。

如下程序示范了如何创建目录:

import os
path = 'my_dir'
# 直接在当前目录下创建目录
os.mkdir(path, 0o755)
path = "abc/xyz/wawa"
# 递归创建目录
os.makedirs(path, 0o755)

正如从上面代码所看到的,直接在当前目录下创建 mydir 子目录,因此可以使用 mkdir() 函数创建;需要程序递归创建 abc/xyz/wawa 目录,因此使用 makedirs() 函数。os.rmdir(path):删除 path 对应的空目录。如果目录非空,则抛出一个 OSError 异常。程序可以先用 os.remove() 函数删除文件。os.removedirs(path):边归删除目录。其功能类似于 rmdir(),但该函数可以递归删除 abc/xyz/wawa 目录,它会从 wawa 子目录开始删除,然后删除 xyz 子目录,最后删除 abc 目录。
如下程序示范了如何删除目录:

import ospath = 'my_dir'
# 直接删除当前目录下的子目录
os.rmdir(path)
path = "abc/xyz/wawa"
# 递归删除子目录
os.removedirs(path)

上面程序中第 5 行代码使用 rmdir() 函数删除当前目录下的 my_dir 子目录,该函数不会执行递归删除;第 8 行代码使用 removedirs() 函数删除 abc/xyz/wawa 目录,该函数会执行递归删除,它会先删除 wawa 子目录,然后删除 xyz 子目录,最后才删除 abc 目录。

os.rename(src, dst):重命名文件或目录,将 src 重名为 dst。

os.renames(old, new):对文件或目录进行递归重命名。其功能类似于 rename(),但该函数可以递归重命名 abc/xyz/wawa 目录,它会从 wawa 子目录开始重命名,然后重命名 xyz 子目录,最后重命名 abc 目录。

如下程序示范了如何重命名目录:

import ospath = 'my_dir'
# 直接重命名当前目录下的子目录
os.rename(path, 'your_dir')
path = "abc/xyz/wawa"
# 递归重命名子目录
os.renames(path, 'foo/bar/haha')

上面程序中第 5 行代码直接重命名当前目录下的 my_dir 子目录,程序会将该子目录重命名为 your_dir;第 8 行代码则执行递归重命名,程序会将 wawa 重命名为 haba,将 xyz 重命名为 bar,将 abc 重命名为 foo。

os模块与权限相关的函数

与权限相关的函数如下:

os.access(path, mode):检查 path 对应的文件或目录是否具有指定权限。该函数的第二个参数可能是以下四个状态值的一个或多个值:

os.F_OK:判断是否存在。

os.R_OK:判断是否可读。

os.W_OK:判断是否可写。

os.X_OK:判断是否可执行。

例如如下程序:

import os# 判断当前目录的权限
ret = os.access('.', os.F_OK|os.R_OK|os.W_OK|os.X_OK)
print("os.F_OK|os.R_OK|os.W_OK|os.X_OK - 返回值:", ret)
# 判断os.access_test.py文件的权限
ret = os.access('os.access_test.py', os.F_OK|os.R_OK|os.W_OK)
print("os.F_OK|os.R_OK|os.W_OK - 返回值:", ret)

上面程序判断当前目录的权限和当前文件的权限,这里特意将此文件设为只读的。运行该程序,可以看到如下输出结果:

os.F_OK|os.R_OK|os.W_OK|os.X_OK - 返回值:True
os.F_OK|os.R_OK|os.W_OK - 返回值:False

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/456919.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机服务器中了mkp勒索病毒如何解密,mkp勒索病毒解密流程

随着网络技术的不断发展与应用,越来越多的企业走向数字化办公模式,计算机极大地方便了企业的正常生产运营,但网络威胁的手段也不断增加。近期,云天数据恢复接到很多企业的求助,企业的计算机服务器遭到了mkp勒索病毒攻击…

Vue3动态CSS

Vue3动态CSS 动态css值动态css对象module模式 动态css值 <template><div class"div">动态css</div> </template><script setup langts> import {ref} from vueconst style ref(blue) </script><style scoped> .div{colo…

PyTorch 2.2 中文官方教程(六)

音频 音频 I/O pytorch.org/tutorials/beginner/audio_io_tutorial.html 此教程已移至pytorch.org/audio/stable/tutorials/audio_io_tutorial.html 3 秒后将重定向。 音频重采样 原文&#xff1a;pytorch.org/tutorials/beginner/audio_resampling_tutorial.html 译者&…

Linux系统中安装MAVEN

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

我主编的电子技术实验手册(01)——度量、计数与绘图

本专栏是笔者主编教材&#xff08;图0所示&#xff09;的电子版&#xff0c;依托简易的元器件和仪表安排了30多个实验&#xff0c;主要面向经费不太充足的中高职院校。每个实验都安排了必不可少的【预习知识】&#xff0c;精心设计的【实验步骤】&#xff0c;全面丰富的【思考习…

156基于Matlab的光纤陀螺随机噪声和信号

基于Matlab的光纤陀螺随机噪声和信号&#xff0c;利用固定步长和可调步长的LMS自适应滤波、最小二乘法、滑动均值三种方法进行降噪处理&#xff0c;最后用阿兰方差评价降噪效果。程序已调通&#xff0c;可直接运行。 156 信号处理 自适应滤波 降噪效果评估 (xiaohongshu.com)

[ECE] P2.3Determine t_P_LH and t_P_HL from the oscilloscope

The terms t_P_LH and t_P_HL​​ refer to the propagation delays associated with the low-to-high and high-to-low transitions in a digital signal. These delays are essential in digital systems and are measured with respect to the voltage levels. (Low-to-High…

国考省考行测:判断推理,论证逻辑

国考省考行测&#xff1a;判断推理&#xff0c;论证逻辑 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能&#xff0c;附带行测和申论&#xff0c;而常规国考省考最重要的还是申论和行测&#xff0c;所以大家认真准备吧&#xff0c;我讲一起屡屡申论和…

离散数学——特殊关系(笔记及思维导图)

离散数学——特殊关系&#xff08;笔记及思维导图&#xff09; 笔记来自【电子科大】离散数学 王丽杰

计组学习笔记2024/2/5

1. 2. 3. 1.这么多步,才完成第一条指令,通过0索引来找到2 2.PC的值是对应着MAR来的,为了更好地找到地址 3.操作码, 地址码这些东西都是放在存储体里面的 MAR和MDR只是一个中转站 MAR对应着拿到各个部件给出的主存地址 MDR对应着拿到各个部件给出的指令 4.取指令完成后就自…

【爬虫作业】python爬虫作业——爬取汽车之家

爬取汽车之家期末作业&#xff1a; 代码如下所示&#xff1a; import random import timeimport requests #发送网络请求 import parsel import csv # 1.发送网络请求 headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like G…

JVM 性能调优 - 四种引用(4)

为什么会有四种引用 我们先回顾下在 Java 虚拟机内存体系(1) 中提到了的垃圾回收算法 1、引用计数法 原理:给对象添加一个引用计数器,每当有一个地方引用它,计数器的值就加一。每当有一个引用失效,计数器的值就减一。当计数器值为零时,这个对象被认为没有其他对象引用,…