例如,某文件系统目录下有一系列文件:
quicksort.c graph.py heap.java install.sh stack.app
要求:给其中所有的.sh
和.py
文件加上用户可执行权限。
解决方案:
使用字符串的startswith()
和endswith()
方法,多个匹配时参数使用元组。
startswith()
和endswith()
方法:字符串的startswith()
方法表示以指定字符串开头,匹配到则返回True,否则返回False;
字符串的endswith()
方法表示以指定字符串结尾,匹配到则返回True,否则返回False。
os.listdir()
方法:os.listdir(path)
os.listdir()
方法用于返回指定目录中包含的文件或目录的名字的列表,该列表以字母顺序。
os.stat()
方法:os.stat(path, dir_fd, follow_symlinks)
os.stat()
方法在给定路径上执行一个stat系统调用,用来返回相关文件的系统状态信息。path
表示待检查的路径。
os.chmod()
方法:os.chmod(path, mode, dir_fd, follow_symlinks)
os.chmod()
方法用于更改文件或目录的权限。path
表示要修改的路径或文件名;mode
表示要修改的属性。
stat.S_IXUSR
属性:stat.S_IXUSR
表示拥有者具有执行权限0o100。
类似的stat.S_IRUSR
表示拥有者具有读权限0o400;stat.S_IWUSR
表示拥有者具有写权限0o200;stat.S_IRWXU
表示拥有者有全部权限(权限掩码)0o700;stat.S_IXGRP
表示组用户有执行权限0o010;stat.S_IXOTH
表示其他用户有执行权0o001。
import osimport statfor fn in os.listdir('.'): #文件目录路径 if fn.endswith(('.py', '.sh')): fs = os.stat(fn) #读取文件状态 os.chmod(fn, fs.st_mode | stat.S_IXUSR) # |表示或操作