Python语言零基础入门教程(二十一)

Python OS 文件/目录方法

1、Python os.access() 方法

概述
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/python
# -*- coding: UTF-8 -*-

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、Python os.chdir() 方法

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

语法
chdir()方法语法格式如下:

os.chdir(path)

参数
path – 要切换到的新路径。

返回值
如果允许访问返回 True , 否则返回False。

实例
以下实例演示了 chdir() 方法的使用:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os, sys

path = "/tmp"

# 查看当前工作目录
retval = os.getcwd()
print "当前工作目录为 %s" % retval

# 修改当前工作目录
os.chdir( path )

# 查看修改后的工作目录
retval = os.getcwd()

print "目录修改成功 %s" % retval

执行以上程序输出结果为:

当前工作目录为 /www
目录修改成功 /tmp

3、Python os.chflags() 方法

概述
os.chflags() 方法用于设置路径的标记为数字标记。多个标记可以使用 OR 来组合起来。

只支持在 Unix 下使用。

语法
chflags()方法语法格式如下:

os.chflags(path, flags)

参数
path – 文件名路径或目录路径。
flags – 可以是以下值:
stat.UF_NODUMP: 非转储文件
stat.UF_IMMUTABLE: 文件是只读的
stat.UF_APPEND: 文件只能追加内容
stat.UF_NOUNLINK: 文件不可删除
stat.UF_OPAQUE: 目录不透明,需要通过联合堆栈查看
stat.SF_ARCHIVED: 可存档文件(超级用户可设)
stat.SF_IMMUTABLE: 文件是只读的(超级用户可设)
stat.SF_APPEND: 文件只能追加内容(超级用户可设)
stat.SF_NOUNLINK: 文件不可删除(超级用户可设)
stat.SF_SNAPSHOT: 快照文件(超级用户可设)
返回值
该方法没有返回值。

实例
以下实例演示了 chflags() 方法的使用:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os,stat

path = "/tmp/foo.txt"

# 为文件设置标记,使得它不能被重命名和删除
flags = stat.SF_NOUNLINK
retval = os.chflags( path, flags)
print "返回值: %s" % retval

执行以上程序输出结果为:

返回值: None

4、Python os.chmod() 方法

概述
os.chmod() 方法用于更改文件或目录的权限。

语法
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下取消只读
返回值
该方法没有返回值。

实例
以下实例演示了 chmod() 方法的使用:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os, sys, stat

# 假定 /tmp/foo.txt 文件存在,设置文件可以通过用户组执行

os.chmod("/tmp/foo.txt", stat.S_IXGRP)

# 设置文件可以被其他用户写入
os.chmod("/tmp/foo.txt", stat.S_IWOTH)

print "修改成功!!"

执行以上程序输出结果为:

修改成功!!

5、Python os.chown() 方法

概述
os.chown() 方法用于更改文件所有者,如果不修改可以设置为 -1, 你需要超级用户权限来执行权限修改操作。

只支持在 Unix 下使用。

语法
chown()方法语法格式如下:

os.chown(path, uid, gid);

参数
path – 设置权限的文件路径

uid – 所属用户 ID

gid – 所属用户组 ID

返回值
该方法没有返回值。

实例
以下实例演示了 chown() 方法的使用:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os, sys

# 假定 /tmp/foo.txt 文件存在.
# 设置所有者 ID 为 100
os.chown("/tmp/foo.txt", 100, -1)

print "修改权限成功!!"

执行以上程序输出结果为:

修改权限成功!!

猜你喜欢

转载自blog.csdn.net/weixin_44006731/article/details/129060964