Python os模块
os 模块提供了非常丰富的方法用来处理文件和目录。
权限
查看权限
| 12
 3
 4
 
 | os.access(path,mode)
 path:指定文件路径
 mode:参数参数有F_OK(是否存在),R_OK(可读),W_OK(可写),X_OK(可执行)
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | >>> import os                                                            >>> os.access('C:/Users/Think/Desktop/Python/test.py',os.F_OK)
 True
 >>> os.access('C:/Users/Think/Desktop/Python/test.py',os.R_OK)
 True
 >>> os.access('C:/Users/Think/Desktop/Python/test.py',os.W_OK)
 True
 >>> os.access('C:/Users/Think/Desktop/Python/test.py',os.X_OK)
 True
 
 | 
更改权限
os.chmod() 方法用于更改文件或目录的权限。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 
 | os.chmod(path, mode)
 path -- 文件名路径或目录路径。
 权限指定:
 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下取消只读
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | >>> os.chmod('C:/Users/Think/Desktop/Python/test.py',stat.S_IREAD)>>> os.access('C:/Users/Think/Desktop/Python/test.py',os.W_OK)
 False
 >>> os.access('C:/Users/Think/Desktop/Python/test.py',os.F_OK)
 True
 >>> os.access('C:/Users/Think/Desktop/Python/test.py',os.X_OK)
 True
 >>> os.access('C:/Users/Think/Desktop/Python/test.py',os.R_OK)
 True
 
 | 
更改所有者
os.chown() 方法用于更改文件所有者,如果不修改可以设置为 -1, 你需要超级用户权限来执行权限修改操作。
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | chown()方法语法格式如下:
 os.chown(path, uid, gid);
 
 path -- 设置权限的文件路径
 
 uid -- 所属用户 ID
 
 gid -- 所属用户组 ID
 
 | 
目录
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | >>> os.getcwd() #返回当前工作的目录'C:\\Users\\Think\\Desktop'
 >>> os.listdir('.') #返回指定目录下所有的文件和目录名
 ['file.txt', 'test', 'caidan.py', 'test.txt', 'test.py', 'test1.py', 'enumerate.py', 'login.py']
 >>> os.remove('test1.py') #删除指定文件
 >>> os.rmdir('aaa')  #删除指定目录
 >>> os.mkdir('directory')  #创建目录,只能创建一层目录
 >>> os.system('whoami')  #执行shell命令
 Think
 >>> os.path.getmtime('.') #返回在此path下最后一次修改的时间戳
 1530964033.3031383
 
 | 
文件
打开文件
os.open() 方法用于打开一个文件,并且设置需要的打开选项,模式参数mode参数是可选的,默认为 0777。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 
 | os.open(file, flags[, mode]);
 file -- 要打开的文件
 
 flags -- 该参数可以是以下选项,多个使用 "|" 隔开:
 
 os.O_RDONLY: 以只读的方式打开
 os.O_WRONLY: 以只写的方式打开
 os.O_RDWR : 以读写的方式打开
 os.O_NONBLOCK: 打开时不阻塞
 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: 不追踪软链接
 
 | 
读取文件
os.read() 方法用于从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。
| 12
 3
 4
 5
 6
 
 | os.read(fd,n)
 
 fd -- 文件描述符。
 
 n -- 读取的字节。
 
 | 
删除文件
os.unlink() 方法用于删除文件,如果文件是一个目录则返回一个错误
| 12
 3
 
 | os.unlink(path)
 path -- 删除的文件路径
 
 | 
Python sys模块