Python3 OS 文件/目录方法
os 模块提供了非常丰富的方法用来处理文件和目录。常用的方法如下表所示:
1、os.access()
方法使用当前的uid/gid尝试访问路径。大部分操作使用有效的 uid/gid, 因此运行环境可以在 suid/sgid 环境尝试。
access()方法语法格式如下:
os.access(path, mode);
参数
-
path -- 要用来检测是否有访问权限的路径。
-
mode -- mode为F_OK,测试存在的路径,或者它可以是包含R_OK, W_OK和X_OK或者R_OK, W_OK和X_OK其中之一或者更多。
- os.F_OK: 作为access()的mode参数,测试path是否存在。
- os.R_OK: 包含在access()的mode参数中 , 测试path是否可读。
- os.W_OK 包含在access()的mode参数中 , 测试path是否可写。
- os.X_OK 包含在access()的mode参数中 ,测试path是否可执行。
返回值
如果允许访问返回 True , 否则返回False。
实例
以下实例演示了 access() 方法的使用:
#!/usr/bin/python3
import os, sys
# 假定 /tmp/foo.txt 文件存在,并有读写权限
ret = os.access("/tmp/foo.txt", os.F_OK)
print ("F_OK - 返回值 %s"% ret)
ret = os.access("/tmp/foo.txt", os.R_OK)
print ("R_OK - 返回值 %s"% ret)
ret = os.access("/tmp/foo.txt", os.W_OK)
print ("W_OK - 返回值 %s"% ret)
ret = os.access("/tmp/foo.txt", os.X_OK)
print ("X_OK - 返回值 %s"% ret)
执行以上程序输出结果为:
F_OK - 返回值 True
R_OK - 返回值 True
W_OK - 返回值 True
X_OK - 返回值 False
2、os.chdir() 方法
os.chdir() 方法用于改变当前工作目录到指定的路径。
语法
chdir()方法语法格式如下:
os.chdir(path)
参数
-
path -- 要切换到的新路径。
返回值
如果允许访问返回 True , 否则返回False。
实例
以下实例演示了 chdir() 方法的使用:
#!/usr/bin/python3
import os, sys
path = "/tmp"
# 查看当前工作目录
retval = os.getcwd()
print ("当前工作目录为 %s" % retval)
# 修改当前工作目录
os.chdir( path )
# 查看修改后的工作目录
retval = os.getcwd()
print ("目录修改成功 %s" % retval)
执行以上程序输出结果为:
当前工作目录为 /www
目录修改成功 /tmp
3、os.chmod() 方法
概述
os.chmod() 方法用于更改文件或目录的权限。
Unix 系统可用。
语法
chmod()方法语法格式如下:
os.chmod(path, mode)
参数
-
path -- 文件名路径或目录路径。
-
flags -- 可用以下选项按位或操作生成, 目录的读权限表示可以获取目录里文件名列表, ,执行权限表示可以把工作目录切换到此目录 ,删除添加目录里的文件必须同时有写和执行权限 ,文件权限以用户id->组id->其它顺序检验,最先匹配的允许或禁止权限被应用。
- 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下取消只读
4、os.getcwd() 方法
概述
os.getcwd() 方法用于返回当前工作目录。
语法
getcwd()方法语法格式如下:
os.getcwd()
5、os.read() 方法
概述
os.read() 方法用于从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。
在Unix,Windows中有效
语法
read()方法语法格式如下:
os.read(fd,n)
参数
-
fd -- 文件描述符。
-
n -- 读取的字节。
返回值
返回包含读取字节的字符串
6、os.write() 方法
概述
os.write() 方法用于写入字符串到文件描述符 fd 中. 返回实际写入的字符串长度。
在Unix中有效。
语法
write()方法语法格式如下:
os.write(fd, str)
参数
-
fd -- 文件描述符。
-
str -- 写入的字符串。
返回值
该方法返回写入的实际位数。
7、os.path() 模块
os.path 模块主要用于获取文件的属性。
以下是 os.path 模块的几种常用方法: