最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Python os模块详解

    正文概述    2020-08-18   197

    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 目录,该函数会执行递归删除,它会先删除 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



    起源地下载网 » Python os模块详解

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元