知行编程网知行编程网  2022-11-04 16:00 知行编程网 隐藏边栏  16 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python os模块详解的相关知识,希望可以帮到处于编程学习途中的小伙伴

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 os

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

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

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

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

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

import os

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

上面程序中的第五行代码直接重命名了当前目录下的my_dir子目录,程序会将子目录重命名为your_dir;第八行代码进行递归重命名,程序会将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

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享