• Python内置OS模块用法详解


    大家好,从今天起早起Python将持续更新由小甜同学从初学者的角度学习Python的笔记,其特点就是全文大多由新手易理解的代码与注释及动态演示。刚入门的读者千万不要错过!

    很多人学习python,不知道从何学起。

    很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。

    很多已经做案例的人,却不知道如何去学习更加高深的知识。

    那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!

    QQ群:1097524789

    为了配合Python办公自动化系列文章,本文带来的是偷学Python第二十七天:Python内置OS模块的详细用法,其他内容将在近期更新完毕,本文目录如下

    目录操作

    创建目录

    mkdir() 方法用于以数字权限模式当前目录下创建目录。默认的模式为 0777 (八进制),语法格式如下

    os.mkdir(path[, mode])
    • path – 要创建的目录

    • mode – 要为目录设置的权限数字模式

        

    makedirs() 方法用于递归创建目录。可以创建多个目录,其中exist_ok为False,表示目录存在抛出异常。语法格式如下

    os.makedirs(path, mode=0o777)
    
    • path – 需要递归创建的目录。

    • mode – 权限模式。

    示例代码

    import os
    os.mkdir("..\test_dir")  # 创建目录上一级目录
    # 判断是否创建成功
    print(os.path.isdir("..\test_dir"))  # True
    
    os.makedirs("test_dirs\test_dir")  # 递归创建目录
    print(os.path.isdir("test_dirs\test_dir"))  # True
    
    os.makedirs("Y:/02test/Python/02 进阶部分")
    print(os.path.isdir("Y:/02test/Python/02 进阶部分"))  # True
    

    删除目录

    rmdir() 方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError。语法格式如下

    os.rmdir(path)
    

    path – 要删除的目录路径

    removedirs() 方法用于递归删除目录。注意如果目录不为空,会抛出OSError:[Errno 66] Directory not empty.语法格式为

    os.removedirs(path)

    示例代码

    import os
    os.rmdir("..\test_dir")  # 删除目录
    # 判断是否删除成功
    print(os.path.isdir("..\test_dir"))  # False  目录不存在表示以删除
    
    os.removedirs("test_dirs\test_dir")  # 递归删除目录
    print(os.path.isdir("test_dirs\test_dir"))  # False
    
    os.removedirs("Y:/02test/Python/02 进阶部分")
    print(os.path.isdir("Y:/02test/Python/02 进阶部分"))  # False
    

    重命名目录

    rename() 方法用于命名文件或目录,从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError。

    os.rename(src, dst)
    

    src – 要修改的目录名

    dst – 修改后的目录名

    renames() 方法用于递归重命名目录或文件。类似rename()。

    os.renames(old, new)
    

    示例代码

    import os
    os.rename("..\test_dir", "..\test_dir1")  # 创建目录上一级目录
    print(os.path.isdir("..\test_dir"))  # False
    print(os.path.isdir("..\test_dir1"))  # True
    
    os.renames("test_dirs\test_dir", "test_dirs\test_dir1")  # 递归创建目录
    print(os.path.isdir("test_dirs\test_dir"))  # False
    print(os.path.isdir("test_dirs\test_dir1"))  # True
    
    os.renames("Y:/02test/Python/02 进阶部分", "Y:/02test/Python/02进阶部分")
    print(os.path.isdir("Y:/02test/Python/02 进阶部分"))  # False
    print(os.path.isdir("Y:/02test/Python/02进阶部分"))  # True
    

    获取目录

    listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。只支持在 Unix, Windows 下使用。path为需要列出的目录路径

    os.listdir(path)
    

    getcwd() 方法用于返回当前工作目录。

    os.getcwd()
    

    chdir() 方法用于改变当前工作目录到指定的路径。

    os.chdir(path)

    示例代码

    import os
    dir_list = os.listdir()  # 获取当前文件的路径,返回一个列表
    print(dir_list)  # 返回很长很长的列表
    
    getcwd = os.getcwd()  # 获取当前的工作路径
    print(getcwd)  # Y:2testPython1 基础部分
    
    os.chdir("..")  # 返回上级目录
    getcwd = os.getcwd()  # 获取当前的工作路径
    print(getcwd)  # Y:2testPython

    遍历目录

    walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。在Unix,Windows中有效。

    os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

    示例代码

    import os
    list_result = os.walk(".", topdown=True, onerror=None, followlinks=False)  # 获取当前目录 参数可写可不写
    for root, dirs, files in list_result:
        print(root)
        print(dirs)
        print(files)

    文件操作

    os.open() 方法用于打开一个文件,并且设置需要的打开选项,模式参数mode参数是可选的,默认为 0777。

    os.open(file, flags[, mode]);

    os.write() 方法用于写入字符串到文件描述符 fd 中. 返回实际写入的字符串长度。

    os.write(fd, str)
    

    os.lseek() 方法用于设置文件描述符 fd 当前位置为 pos, how 方式修改。

    os.lseek(fd, pos, how)
    

    os.read() 方法用于从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。在Unix,Windows中有效

    os.read(fd,n)
    

    os.fsync() 方法强制将文件描述符为fd的文件写入硬盘。Unix、Windows上可用。

    os.fsync(fd)
    

    os.close() 方法用于关闭指定的文件描述符 fd。

    os.close(fd)
    

    示例代码

    """
    -*- coding:uft-8 -*-
    author: 小甜
    time:2020/5/26
    """
    import os
    file = os.open("text.txt", os.O_CREAT | os.O_RDWR)  # 打开文件
    
    
    os.write(file, b"This is test")  # 写入内容
    
    os.fsync(file)  # 将字符串刷新到硬盘上
    os.lseek(file, 0, 0)  # 将指针置为0
    text = os.read(file, 100)   # 读取文件
    print(text)  # b'This is test'
    os.close(file)  # 关闭文件
     

    大家好,从今天起早起Python将持续更新由小甜同学从初学者的角度学习Python的笔记,其特点就是全文大多由新手易理解的代码与注释及动态演示刚入门的读者千万不要错过!

    为了配合Python办公自动化系列文章,本文带来的是偷学Python第二十七天:Python内置OS模块的详细用法,其他内容将在近期更新完毕,本文目录如下

    目录操作

    创建目录

     

    mkdir() 方法用于以数字权限模式当前目录下创建目录。默认的模式为 0777 (八进制),语法格式如下

    os.mkdir(path[, mode])
    • path – 要创建的目录

    • mode – 要为目录设置的权限数字模式

        

    makedirs() 方法用于递归创建目录。可以创建多个目录,其中exist_ok为False,表示目录存在抛出异常。语法格式如下

    os.makedirs(path, mode=0o777)
    • path – 需要递归创建的目录。

    • mode – 权限模式。

    示例代码

    import os
    os.mkdir("..\test_dir")  # 创建目录上一级目录
    # 判断是否创建成功
    print(os.path.isdir("..\test_dir"))  # True

    os.makedirs("test_dirs\test_dir")  # 递归创建目录
    print(os.path.isdir("test_dirs\test_dir"))  # True

    os.makedirs("Y:/02test/Python/02 进阶部分")
    print(os.path.isdir("Y:/02test/Python/02 进阶部分"))  # True

     

    删除目录

     

    rmdir() 方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError。语法格式如下

    os.rmdir(path)

    path – 要删除的目录路径

    removedirs() 方法用于递归删除目录。注意如果目录不为空,会抛出OSError:[Errno 66] Directory not empty.语法格式为

    os.removedirs(path)

    示例代码

    import os
    os.rmdir("..\test_dir")  # 删除目录
    # 判断是否删除成功
    print(os.path.isdir("..\test_dir"))  # False  目录不存在表示以删除

    os.removedirs("test_dirs\test_dir")  # 递归删除目录
    print(os.path.isdir("test_dirs\test_dir"))  # False

    os.removedirs("Y:/02test/Python/02 进阶部分")
    print(os.path.isdir("Y:/02test/Python/02 进阶部分"))  # False

     

    重命名目录

     

    rename() 方法用于命名文件或目录,从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError。

    os.rename(src, dst)

    src – 要修改的目录名

    dst – 修改后的目录名

    renames() 方法用于递归重命名目录或文件。类似rename()。

    os.renames(old, new)

    示例代码

    import os
    os.rename("..\test_dir""..\test_dir1")  # 创建目录上一级目录
    print(os.path.isdir("..\test_dir"))  # False
    print(os.path.isdir("..\test_dir1"))  # True

    os.renames("test_dirs\test_dir""test_dirs\test_dir1")  # 递归创建目录
    print(os.path.isdir("test_dirs\test_dir"))  # False
    print(os.path.isdir("test_dirs\test_dir1"))  # True

    os.renames("Y:/02test/Python/02 进阶部分""Y:/02test/Python/02进阶部分")
    print(os.path.isdir("Y:/02test/Python/02 进阶部分"))  # False
    print(os.path.isdir("Y:/02test/Python/02进阶部分"))  # True

     

    获取目录

     

    listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。只支持在 Unix, Windows 下使用。path为需要列出的目录路径

    os.listdir(path)

    getcwd() 方法用于返回当前工作目录。

    os.getcwd()

    chdir() 方法用于改变当前工作目录到指定的路径。

    os.chdir(path)

    示例代码

    import os
    dir_list = os.listdir()  # 获取当前文件的路径,返回一个列表
    print(dir_list)  # 返回很长很长的列表

    getcwd = os.getcwd()  # 获取当前的工作路径
    print(getcwd)  # Y:2testPython1 基础部分

    os.chdir("..")  # 返回上级目录
    getcwd = os.getcwd()  # 获取当前的工作路径
    print(getcwd)  # Y:2testPython

     

    遍历目录

     

    walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。在Unix,Windows中有效。

    os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

    示例代码

    import os
    list_result = os.walk(".", topdown=True, onerror=None, followlinks=False)  # 获取当前目录 参数可写可不写
    for root, dirs, files in list_result:
        print(root)
        print(dirs)
        print(files)

    文件操作

    os.open() 方法用于打开一个文件,并且设置需要的打开选项,模式参数mode参数是可选的,默认为 0777。

    os.open(file, flags[, mode]);

     

    os.write() 方法用于写入字符串到文件描述符 fd 中. 返回实际写入的字符串长度。

    os.write(fd, str)

    os.lseek() 方法用于设置文件描述符 fd 当前位置为 pos, how 方式修改。

    os.lseek(fd, pos, how)

    os.read() 方法用于从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。在Unix,Windows中有效

    os.read(fd,n)

    os.fsync() 方法强制将文件描述符为fd的文件写入硬盘。Unix、Windows上可用。

    os.fsync(fd)

    os.close() 方法用于关闭指定的文件描述符 fd。

    os.close(fd)

    示例代码

    """
    -*- coding:uft-8 -*-
    author: 小甜
    time:2020/5/26
    """

    import os
    file = os.open("text.txt", os.O_CREAT | os.O_RDWR)  # 打开文件


    os.write(file, b"This is test")  # 写入内容

    os.fsync(file)  # 将字符串刷新到硬盘上
    os.lseek(file, 00)  # 将指针置为0
    text = os.read(file, 100)   # 读取文件
    print(text)  # b'This is test'
    os.close(file)  # 关闭文件
  • 相关阅读:
    Django rest_framework之序列化(serializers)
    异常处理
    Django之ModelForm通过ajax用户登录验证
    Django之ModelForm用户登录注册
    Django之Model操作
    Jenkins+Maven+SVN+Nexus 搭建持续集成环境
    nginx rewrite域名跳转访问XML接口
    python自动发布应用脚本
    Django基础
    Web安全概述
  • 原文地址:https://www.cnblogs.com/shann001/p/13140885.html
Copyright © 2020-2023  润新知