好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

9. 判断字符串是否以另一字符串开头或结尾

例如,某文件系统目录下有一系列文件:

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)             # |表示或操作

查看更多关于9. 判断字符串是否以另一字符串开头或结尾的详细内容...

  阅读:48次