Python 使用OS对象



文章目录

  • Python 使用OS对象
  • 一、使用方法access()
  • 二、使用方法chdir()
  • 三、使用方法 chmod()
  • 四、打开、写入和关闭
  • 1.方法open()
  • 2.方法write()
  • 3.方法close()
  • 五、打开、 读取和关闭
  • 六、创建目录
  • 1.使用方法mkdir()
  • 2.使用方法makedirs()



一、使用方法access()

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

os.access (Patn, mode);

  (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)   #显示文件是否可执行

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

用python编程aes_python

二、使用方法chdir()

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

os.chdir(path)

  上述函数参数“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)

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

用python编程aes_字符串_02

三、使用方法 chmod()

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

os.chmod (path, flags)

  方法 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_IREAD

Windows下设为只读

stat.S_IWRITE

Windows 下取消只读

  注意:目录的读权限表示可以获取目录里的文件名列表,执行权限表示可以把工作目承切换到此目录。删除添加目录里的文件必须同时有写和执行权限,文件权限以“用户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 ("修改成功 !!!!")

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

用python编程aes_用python编程aes_03

四、打开、写入和关闭

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

1.方法open()

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

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

  方法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)

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

3.方法close()

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

os.close(fd)

  方法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 (" 关闭文件成功!!")     #显示提示文本

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

用python编程aes_用python编程aes_04

五、打开、 读取和关闭

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

os.read(fd,n)

  方法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 (" 关闭文件成功!!")

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

用python编程aes_用python编程aes_05

六、创建目录

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

1.使用方法mkdir()

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

os .mkdir (path[,mode])

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

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

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

用python编程aes_python_06

2.使用方法makedirs()

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

os . makedirs (path, mode=0o777)

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

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

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

用python编程aes_python_07