os模块与目录相关的函数

与目录相关的函数如下:

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

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

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

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

# 获取当前目录

print(os.getcwd())  # G:publishcodes12.7

# 改变当前目录

os.chdir('../12.6')

# 再次获取当前目录

print(os.getcwd())  # G:publishcodes12.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 目录,该函数会执行递归删除,它会先删除 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')

上面程序中第 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

pythonos模块使用教程_Python os模块详解相关推荐

  1. pythonos模块使用方法_Python OS模块常用方法总结

    Python OS模块常用方法总结 Python OS模块方法: 操作 说明 os.getcwd() 得到当前工作目录,即当前Python脚本工作的目录路径 os.listdir() 返回指定目录下的 ...

  2. python中os模块教程_python os模块功能和方法总结

    os.sep     可以取代操作系统特定的路径分割符 os.linesep  字符串给出当前平台使用的行终止符.例如,Windows使用' ',Linux使用' ' 而Mac使用''. os.nam ...

  3. pythonos模块怎么设置_Python OS模块如何使用?

    对于Python的模块,跟大家说过很多内容,但是大家有没有了解过OS模块呢?想到这个模块,大家有没有想到我们之前提及的其他内容呢?比如sys模块呢?没错,这两个模块之前是存在相关性的,那到底怎么去使用 ...

  4. xposed模块编写教程_Xposed插件开发入门详解,

    Xposed插件开发入门详解, 前言 Xposed的用处不必言说,能hook任意java写的代码,修改替换apk内部的资源文件. 至于如何开发一个XPosed的插件,官方给出的答案如下: https: ...

  5. python os模块打开文件_python OS 模块 文件目录操作

    os模块中包含了一系列文件操作的函数,这里介绍的是一些在Linux平台上应用的文件操作函数.由于Linux是C写的,低层的libc库和系统调用的接口都是C API,而Python的os模块中包括了对这 ...

  6. pythonos模块使用方法_python os模块使用方法

    os.path模块 basename('文件路径')    去掉目录路径,返回fname文件名 1 import os 2 os.path.basename('/Volumes/1.mp4')   # ...

  7. python时间模块使用教程_Python datetime模块使用方法小结

    datetime模块 当前日期 datetime.date.today() datetime.date(2020, 4, 24) 转换元祖 >>> datetime.date.tim ...

  8. xposed模块编写教程_Xposed插件开发入门详解

    前言 Xposed的用处不必言说,能hook任意java写的代码,修改替换apk内部的资源文件. 至于如何开发一个XPosed的插件,官方给出的答案如下: 看完这篇文章,基本能写出一个最简单的demo ...

  9. pythonbreak语句教程_Python break语句详解

    Python break语句,就像在C语言中,打破了最小封闭for或while循环.break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句. bre ...

最新文章

  1. modules not found(模块未找到)的解决方案
  2. python如何读写文件-Python读写文件
  3. Python 判断字符串是否包含中文
  4. SRS(simple-rtmp-server)流媒体服务器源码分析--启动
  5. Nagios(页面)报错: Return code of 13 is out of bounds
  6. 什么是 FreeMarker
  7. KubeVela v1.2 发布:你要的图形化操作控制台 VelaUX 终于来了
  8. oracle自增列问题i,Oracle序列 和 SQL SERVER 自增列的问题-oracle
  9. 凸优化第六章逼近与拟合 6.4鲁棒逼近
  10. 基于Spingboot的HIS医院门诊信息系统
  11. dms虚拟服务器,云服务器带dms
  12. 智慧城市综合管控平台
  13. oracle重建表导致同义词失效,一次对dual表的恢复操作(ORA-00980:同义词转换不再有效错误解决方法)...
  14. 14年间,用友U9 cloud如何让众多“专精特新”成长为行业冠军
  15. 女性每天喝酸奶的好处是什么?
  16. Comsumer的一些解释
  17. 《Effective Modern C++》翻译--条款2: 理解auto自动类型推导
  18. ur机器人计算机模拟仿真,UR机器人科研应用案例
  19. 基础Java练习16:学生喂养动物
  20. 新零售:新与旧的唯一评判标准就是:科技是第一生产力

热门文章

  1. 基于spring security实现vue2前后端分离的双token刷新机制(完整代码详解,含金量拉满!)
  2. android 自定义view(侧拉删除)
  3. etal中间有空格吗_class属性中间存在空格,到底是什么意思呢?!
  4. 快速导入机智云APP并且修改ui界面
  5. mysql修改uuid
  6. PHP验证统一信用代码
  7. 学习易经的步骤及方法 如何学习易经
  8. vue中target和eventTarget的区别
  9. 中英文简历制作注意点
  10. 微信小程序+laravel8 计算距离