• 自学Python 39 使用OS对象


    Python 使用OS对象



    一、使用方法access()

      在Python程序中,方法access()的功能是检验对当前文件的操作权限模式。方法access()使用当前的uid/gid尝试访问指定的路径。使用方法access()的语法格式如下所示:

    os.access (Patn, mode);
    
    • 1

      (1)参数“patn“ :用于检测是否有访问权限的路径。
      (2) 参数“mode“:表示测试当前路径的模式,主要包括如下四种取值模式。
      ● os.F_OK: 测试 path是否存在。
      ● os.R_OK: 测试 path是否可读。
      ● os.W_OK: 测试 path是否可写。
      ● os.X_OK: 测试 path是否可执行。
      方法 access()有返回值,如果允许访问则返回 True,否则返回False。
      例如在下面的实例代码中,演示了使用方法access()获取文件操作权限的过程,具体实现代码如下所示:

    import os,sys       #假定123/456.txt文件存在,并设置有读/写权限
    ret = os.access("123/456.txt", os.F_OK)
    print ("F_OK —— 返回值 %s"% ret)   #显示文件是否存在
    ret = os.access("123/456.txt", os.R_OK)
    print("R_OK —— 返回值%s"% ret)     #显示文件是否可读
    ret = os.access ("123/456.txt", os.W_OK)    #检测文件是否可写
    print ("W_OK —— 返回值%s"% ret)    #显示文件是否可写
    ret = os.access("123/456.txt", os.X_OK)
    print ("X_OK —— 返回值%s"% ret)   #显示文件是否可执行
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

      在运行上述实例代码之前,需要在该文件的目录下创建一个名为“123”的文件夹,然后在里面创建一个文本文件“456.txt”。在上述代码中,使用方法access()获取了对文件“123/456 txt”的操作权限,执行后会输出:
    在这里插入图片描述

    二、使用方法chdir()

      在Python程序中,方法chdir()的功能是修改当前工作目录到指定路径的过程 。使用方法chdir()的语法格式如下所示:

    os.chdir(path)
    
    • 1

      上述函数参数“path”表示要切换到的新路径。方法chdir()有返回值,如果允许修改则返回 True,否则返回False 。在下面的实例代码中,演示了使用方法chdir()修改当前工作目录到指定路径的过程:

    import os,sys
    path = "123"       #设置目录变量的初始值
    retval = os.getcwd()    #获取当前文件的工作目录
    print("文件的当前工作目录为%s" % retval)      #显示当前文件的工作目录
    os.chdir( path )  #修改当前工作目录
    #查看修改后的工作目录
    retval =os.getcwd()     #再次获取当前文件的工作目录
    print("”目录修改成功%s" % retval)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

      在上述实例代码中,首先使用方法getcwd()获取了当前文件的工作目录,然后使用方法chdir()修改当前工作目录到指定路径“123”。执行后会输出:
    在这里插入图片描述

    三、使用方法 chmod()

      在Python程序中,方法chmod()的功能是修改文件或目录的权限。使用方法chmod()的语法格式如下所示。

    os.chmod (path, flags)
    
    • 1

      方法 chmod()没有返回值,上述格式中参数的具体说明如下所
      (1) path:文件名路径或目录路径。
      (2) mode:表示不同的权限级别,可用下表所示的选项按位或操作生成。

    选项名称操作
    stat.S_IXOTH其他用户有执行权限0o001
    stat.S_IWOTH其他用户有写权限0o002
    stat.S_IROTH其他用户有读权限0o004
    stat.S_IRWXO其他用户有全部权限(权限掩码)0o007
    stat.S_IXGRP组用户有执行权限0o010
    stat.S_IWGRP组用户有写权限0o020
    stat.S_IRGRP组用户有读权限0o040
    stat.S_IRWXG组用户有全部权限(权限掩码) 0o070
    stat.S_IXUSR拥有者具有执行权限0o100
    stat.S_IWUSR拥有者具有写权限0o200
    stat.S_IRUSR拥有者具有读权限0o400
    stat.S_IRWXU拥有者有全部权限(权限掩码) 0o700
    stat.S_ISVTX目录里文件目录只有拥有者才可删除更改0o1000
    stat.S_ISGID执行此文件其进程有效组为文件所在组0o2000
    stat.S_ISUID执行此文件其进程有效用户为文件所有者0o4000
    stat.S_IREADWindows下设为只读
    stat.S_IWRITEWindows 下取消只读

      注意:目录的读权限表示可以获取目录里的文件名列表,执行权限表示可以把工作目承切换到此目录。删除添加目录里的文件必须同时有写和执行权限,文件权限以“用户id 一> 组id 一> 其地”顺序进行检验,最先匹配的允许或禁止权限被应用,意思是先匹配哪一个权限,就使用哪一个权限。
      例如在下面的实例代码中,演示了使用方法chmod()修改文件或目录权限的过程。

    import os, sys, stat    #井假设123/456.txt 文件存在,设置文件可以通过用户组执行
    os.chmod ("123/456.txt", stat.S_IXGRP)
    os.chmod("123/456.txt", stat.S_IWOTH)#设置文件可以被其他用户写入
    print ("修改成功 !!!!")
    
    • 1
    • 2
    • 3
    • 4

      在上述实例代码中,使用方法chmod()将文件“123/456.xt”的权限修改为“stat.S_IWOTH"。执行后会输出:
    在这里插入图片描述

    四、打开、写入和关闭

      在Python程序中,当想要操作一个文件或目录时,首先需要打开这个文件,然后才能执行写入或读取等操作,在操作完毕后一定要及时关闭操作。其中打开操作是通过方法open()实现的,写入操作是通过方法write()实现的,关闭操作是通过方法close()实现的。

    1.方法open()

      在Python程序中,方法open()的功能是打开一个文件,并且设置需要的打开选项。使用方法open()的语法格式如下所示。

    os.open(file. flags[,mode]):
    
    • 1

      方法open()有返回值,返回新打开文件的描还付。上心八l H六中况明如下所示。
      (1)参数“file”: 要打开的文件。
      (2)参数“mode”: 可选参数,默认为0777
      (3参数“flags”: 可以是如下表所示的选项值,多个选项之间使用“|”隔开。

    操作选项名称
    os.O_RDONLY以只读的方式打开
    os.O_WRONLY以只写的方式打开
    os.O_RDWR以读/写的方式打开
    os.O_RNONBLOCK打开时不阻塞
    os.O_ APPEND以追加的方式打开
    os.O_CREAT创建并打开一个新文件
    os.O_TRUNC打开一个文件并截断它的长度为零(必须有写权限)
    os.O_EXCL如果指定的文件存在,返回错误
    os.O_SHLOCK自动获取共享锁
    os.O_EXLOCK自动获取独立锁
    os.O_DIRECT消除或减少缓存效果
    os.O_ FSYNC强制同步写入
    os.O_ NOFOLLOW不追踪软链接

    2.方法write()

      在Python程序中,方法write()的功能是写字符串到文件描述符fd中,返回实际写入的字符串长度。方法write()在UNIX系统中也是有效的,使用方法write()的语法格式如下所示。

    os . write(fd,str)
    
    • 1

      ●参数“fd”: 表示文件描述符;
      ●参数“str”: 表示写入的字符串。
      方法write(有返回值,返回写入的实际位。

    3.方法close()

      在Python程序中,方法close()的功能是关闭指定文件的描述符fd。使用方法 close()的语法格式如下所示。

    os.close(fd)
    
    • 1

      方法close()没有返回值,参数“fd”表示文件描述符。例如在下面的实例代码中,演示了使用方法 open()、write()和close()实现文件的打开、写入和关闭操作的过程。打开文件“456.txt”然后实现文件的打开、写入和关闭操作:

    import os,sys
    fd = os.open("456.txt",os.O_RDWR|os.O_CREAT)      #打开文件
    str = "Python学习进行中"     #设置写入字符串变量
    ret = os.write (fd,bytes(str, 'UTF-8'))
    print (" 写入的位数为: ")     #输出返回值
    print (ret)     #显示写入的位数
    print (" 写入成功")     #显示提示文本
    os.close (fd)       #关闭文件
    print (" 关闭文件成功!!")     #显示提示文本
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

      在上述实例代码中,首先使用方法open()创建并打开了个名为 “456.txt”的文件,然后使用方法write()向这个文件中写入了文本“Python学习进行中”,最后通过方法close() 关闭了文件操作。执行后会输出:
    在这里插入图片描述

    五、打开、 读取和关闭

      在Python程序中,方法read()的功能是从文件描述符fd中读取最多n个字节,返回包含读取字节的字符串,文件描述符fd对应文件已达到结尾,返回一个空字符串。使用方法read()的语法格式如下所示。

    os.read(fd,n)
    
    • 1

      方法read()有返回值,返回包含读取字节的字符串。其中参数fd表示文件描述符,参数n表示读取的字节。例如在下面的实例代码中,演示了使用方法read(读取文件中指定字符的过程:

    import os, sys
    fd = os.open ("456.txt",os.O_RDWR)        #以读写方式打开文件
    ret = os.read(fd, 10)       #读取文件中的10个字符
    print (ret)     #打印显示读取的内容
    os.close (fd)           #关闭文件
    print (" 关闭文件成功!!")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

      在上述实例代码中,首先使用方法open()打开了一一个名为“456.txt”的文件,然后使用方法read()读取文件中的10个字符,最后通过方法close()关闭了文件操作。执行效果如图所示。
    在这里插入图片描述

    六、创建目录

      在Python程序中,可以使用OS对象的内置方法创建文件夹目录。

    1.使用方法mkdir()

      在Python程序中,方法mkdir()的功能是以数字权限模式创建目录,默认的模式为0777(八进制)。
    使用方法mkdir()的语法格式如下所示。

    os .mkdir (path[,mode])
    
    • 1

      方法mkdir()有返回值,返回包含读取字节的字符串。其中参数path表示要创建的目录,参数mode表示要为目录设置的权限数字模式。例如在下面的实例代码中,演示了使用方法mkdir()创建一个目录的过程。

    import os,sys
    #设置变量path表示创建的目录
    path = "top"
    #执行创建目录操作
    os.mkdir( path )
    print ("目录已创建")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

      在上述实例代码中,使用方法mkdif()在实例文件的同级目录下新建一个目录“top”
    在这里插入图片描述

    2.使用方法makedirs()

      在Pyhon程序中,方法makedirs()的功能是递归创建目录。功能和方法mkdir()类似,但是可以创建包含子目录的文件夹目录。使用方法makedirs()的语法格式如下所示。

    os . makedirs (path, mode=0o777)
    
    • 1

      方法makedirs()有返回值,返回包含读取字节的字符串。其中参数path表示要递归创建的目录,参数mode表示要为目录设置的权限数字模式。例如在下面的实例代码中,演示了使用方法makedirs()创建一个目录的过程。

    import os,sys
    #设置变量path表示创建的目录
    path = "python text\study"
    os.makedirs(path);
    print("路径被创建")
    
    • 1
    • 2
    • 3
    • 4
    • 5

      在上述代码中,使用方法makedirs()在实例文件的同级目录下新建包含子目录的目录“python text\study”。执行效果如下:

    在这里插入图片描述

  • 相关阅读:
    Java GC
    Java未分类面试知识
    kafka,zookeper的搭建 消息队列---------基于linux
    ONLYOFFICE 8.0:引领数字化办公新纪元
    2023.11.6联赛总结
    Nuxt3第三篇【布局与组件】
    踩大坑ssh免密登录详细讲解
    python 全网最优雅命令行参数解析, 没有之一
    Antd Vue a-select placeholder不显示问题
    Unity IL2CPP 游戏分析入门
  • 原文地址:https://blog.csdn.net/weixin_46066007/article/details/125588814