startswith()endswith() 方法提供了一个非常方便的方式去做字符串开头和结尾的检查。

1、查看指定目录下的所有文件名

>>> import os
>>> filenames = os.listdir('I:\PythonTest')
>>> filenames
['111.csv', '111.xlsx', '111.xml', '123.txt', '123.xlsx', '123123.xml', '123123.xml.bak', '1234.txt', '222.xml', 'book.xml', 'book.xml.bak', 'excelWrite.csv', 'excelWrite.xlsx', 'Koala.jpg', 'movie.xml', 'movie.xml.bak', 'movies.xml', 'receive.txt', 'user.xml', 'user.xml.bak', '新建文件夹']

2、列出.txt文件名

>>> for i in filenames:
if i.endswith('.txt'):
print(i) 123.txt
1234.txt
receive.txt

另外一种写法:

>>> i for i in filenames if i.endswith('.txt')
SyntaxError: invalid syntax
>>> [i for i in filenames if i.endswith('.txt')] #结果返回一个list[]
['123.txt', '1234.txt', 'receive.txt']
>>> a = [i for i in filenames if i.endswith('.txt')]
>>> print(a)
['123.txt', '1234.txt', 'receive.txt']

3、同时列出.txt和.xml文件

如果你想检查多种匹配可能,只需要将所有的匹配项放入到一个元组(‘a’,’b’,’c’)中去, 然后传给startswith() 或者 endswith() 方法

>>> for i in filenames:
if i.endswith(('.txt','.xml')):
print(i) 111.xml
123.txt
123123.xml
1234.txt
222.xml
book.xml
movie.xml
movies.xml
receive.txt
user.xml
>>> [i for i in filenames if i.endswith(('.txt','.xml'))]
['111.xml', '123.txt', '123123.xml', '1234.txt', '222.xml', 'book.xml', 'movie.xml', 'movies.xml', 'receive.txt', 'user.xml']

4、列出开头为book和1的文件名

>>> [i for i in filenames if i.startswith(('book',''))]
['111.csv', '111.xlsx', '111.xml', '123.txt', '123.xlsx', '123123.xml', '123123.xml.bak', '1234.txt', 'book.xml', 'book.xml.bak']

5、查看是否存在xml的文件

检查某个文件夹中是否存在指定的文件类型:

if any(name.endswith(('.c', '.h')) for name in listdir(dirname)):
>>> any(name.endswith('.xml') for name in filenames)
True

参考资料:http://python3-cookbook.readthedocs.org/zh_CN/latest/c02/p02_match_text_at_start_end.html

Python-字符串开头或结尾匹配的更多相关文章

  1. Python: 字符串开头或结尾匹配str.startswith(),str.endswith()

    问题 需要通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URLScheme 等等. 解决方案 1.检查字符串开头或结尾的一个简单方法是使用str.startswith() 或者是str ...

  2. python文本 字符串开头或者结尾匹配

    python文本 字符串开头或者结尾匹配 场景: 字符串开头或者结尾匹配,一般是使用在匹配文件类型或者url 一般使用startwith或者endwith >>> a='http:/ ...

  3. 原生jS之-去掉字符串开头和结尾的空字符

    怎么解决这个问题?? 思路就是我们利用正则匹配到所谓的空格,然后替换为空字符,我们要用到的是str的replace API 代码如下: <!DOCTYPE html> <html l ...

  4. 【trim()】去掉字符串开头和结尾的空格,防止不必要的空格导致的错误。

    去掉字符串开头和结尾的空格,防止不必要的空格导致的错误. public static void main(String arg[]){ String a=" abc"; Strin ...

  5. python ---strip()方法,split()方法,删除字符串开头或结尾,字符串分隔

    本文介绍了strip()方法,split()方法, 字典的按键值访问的方法, 1.Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列. 注意:该方法只能删除开头或是 ...

  6. python_如何判断字符串a以某个字符串开头或结尾?

    案例: 某文件系统目录下有一系列文件: 1.c 2.py 3.java 4.sh 5.cpp ...... 编写一个程序,给其中所有的.sh文件和.py文件加上可执行权限 如何解决这个问题? 1. 先 ...

  7. Python-判断字符串是否以某个字符串开头或结尾?

    案例: 某文件系统目录下有一系列文件: 1.c 2.py 3.java 4.sh 5.cpp ...... 编写一个程序,给其中所有的.sh文件和.py文件加上可执行权限 如何解决这个问题? 1. 先 ...

  8. Python: 去掉字符串开头、结尾或者中间不想要的字符

    ①Strip()方法用于删除开始或结尾的字符.lstrip()|rstirp()分别从左右执行删除操作.默认情况下会删除空白或者换行符,也可以指定其他字符. ②如果想处理中间的空格,需要求助其他技术 ...

  9. python 字符串的特性

    #######str字符串#####str字符判断大小写  url1 = 'http://www.cctv.com'  url2 = 'file:///mnt'  print url1.startsw ...

随机推荐

  1. python的exec、eval详解

    exec exec语句用来执行储存在字符串或文件中的Python语句.例如,我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句.下面是一个简单的例子. exec ' ...

  2. C#基础学习第三天(.net菜鸟的成长之路-零基础到精通)

    1.复合赋值运算符 += -= *= /= %= 2.关系运算符  > < >= <= == !=  由关系运算符连接的表达式我们称之为关系表达式.  每一个表达式都可以求解出 ...

  3. JavaAppArguments.java程序的更改

       此程序模仿JvaAppArgyments.java编写,从命令行接受多个数字,求和之后输出结果.  设计思想:命令行参数都是字符串,可以考虑用 Integer.parseInt(args[]) ...

  4. Date与Calendar

    Date date=new Date();//现在时间 Date date1=new Date(1000);//格林威治时间1997/01/01开始算,后面的是毫秒 Calendar calendar ...

  5. 请写一个C函数,判断处理器是大端存储还是小端存储,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1

    [解答] int checkCPU() { { union w { int a; char b; }c; c.a=1; return (c.b==1); } } [剖析] 嵌入式系统开发者应该对Lit ...

  6. getAttribute:取得属性; setAttribute:设置属性。

    input.setAttribute("title"); 当它是一个值,就是取值. input.setAttribute("title", "hell ...

  7. DPC定时器

    KeInitializeTimer 初始化定时器 KeInitializeTimerEx 初始化定时器 KeSetTimer 开启定时器(只执行一次) KeSetTimerEx 开启定时器(可以设置循 ...

  8. C语言编程的进制问题问题

    在我们的编译器,我用的是ADS   开发平台,现在RTC模块编程时,2410作为上位机,如下代码: n = rBCDDATE;if(n==1) time->day =0x31 ; 波斯历的日期与 ...

  9. 周末献礼 MyVoix2.0.js 麦克风波形绘制(一)

    最近更新了之前发布的语音识别框架MyVoix,加入了麦克风的波形分析效果.没有看过MyVoix介绍的同学请猛戳(传送门) Github地址 在新的更新中,波形分析可以绑定麦克风源,也可以单独配合别的音 ...

  10. obj文件的连接问题以及tlib的基本用法

    1.基础研究 用tcc将程序编译为.obj文件. 这里也可以使用tcc -linclude run.c来将run.c文件编译成run.obj文件. 再用tcc对下面的程序进行编译链接,发现提示错误: ...