Python os模块
os 模块提供了非常丰富的方法用来处理文件和目录。
权限
查看权限
1 2 3 4
| os.access(path,mode)
path:指定文件路径 mode:参数参数有F_OK(是否存在),R_OK(可读),W_OK(可写),X_OK(可执行)
|
1 2 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() 方法用于更改文件或目录的权限。
1 2 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下取消只读
|
1 2 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, 你需要超级用户权限来执行权限修改操作。
1 2 3 4 5 6 7 8 9
| chown()方法语法格式如下:
os.chown(path, uid, gid);
path -- 设置权限的文件路径
uid -- 所属用户 ID
gid -- 所属用户组 ID
|
目录
1 2 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。
1 2 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对应文件已达到结尾, 返回一个空字符串。
1 2 3 4 5 6
| os.read(fd,n)
fd -- 文件描述符。
n -- 读取的字节。
|
删除文件
os.unlink() 方法用于删除文件,如果文件是一个目录则返回一个错误
1 2 3
| os.unlink(path)
path -- 删除的文件路径
|
Python sys模块