字符串开头或结尾匹配
一、 解决问题
你需要通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URL Scheme等等。
二、解决方案
string startswith()/endswith()
re.match
切片
三、代码说明
filename = 'spam.txt'
print (filename.endswith(".txt"))
print (filename.startswith('file:'))
# 如果想检测多个可能性,
#只需要将所有匹配项放入元组中,然后传递给startswith()或endswith()
# 必须传入一个tuple,list和set都不行
import os
# 获取当前目录下的所有文件
filenames = os.listdir(".")
f = (onefile for onefile in filenames if onefile.endswith((".c", ".h")))
print (list(f))
# 读取文件或者网络
from urllib.request import urlopen
def read_data(name):
if name.startswith(("https:", "http:", "ftp:")):
return urlopen(name).read()
else:
with oepn(name) as f:
return f.read()
# 配置 数据聚合使用 (any , all)
if all(name.endswith(('.c', '.h')) for name in list(filenames)):
print (True)
else:
print (False)
四、关联知识
五、总结
六、代码地址
github地址:https://github.com/weichen666/python_cookbook
目录/文件:first_selection/learn_str_startswith_endswith.py