Glob 语法及解析
Glob 语法及解析
目录
- 1. glob 简介
- 2. glob 语法
- 3. .gitignore
- 4. Python glob
1 glob 简介
glob
是用于匹配符合指定模式的文件集合的一种语言, 类似于正则表达式, 但更加简单。
Update-09-22: 前两天阮一峰老师更新了他的博客,内容讲的就是 Glob
, 强烈推荐。
- 命令行通配符教程 - 阮一峰
2 glob 语法
glob
的语法很简单:
通配符 | 描述 | 例子 | 匹配 | 不匹配 |
---|---|---|---|---|
* |
匹配任意数量的任何字符,包括无 | Law* |
Law , Laws , Lawyer |
GrokLaw , La , aw |
? |
匹配任何 单个 字符 | ?at |
Cat , cat , Bat , bat |
at |
[abc] |
匹配括号中给出的一个字符 | [CB]at |
Cat , Bat |
cat , bat |
[a-z] |
匹配括号中给出的范围中的一个字符 | Letter[0-9] |
Letter0 , Letter1 … Letter9 |
Letters , Letter , Letter10 |
[!abc] |
匹配括号中未给出的一个字符 | [!C]at |
Bat , bat , cat |
Cat |
[!a-z] |
匹配不在括号内给定范围内的一个字符 | Letter[!3-5] |
Letter1 … |
Letter3 … Letter5 , Letterxx |
Update-2018-07-18: 使用 **/*
可以匹配当前目录树中的所有文件, 通过 **/*.py
匹配所有后缀名为 .py
的文件
Update-2018-09-20: 好像只是 Python
中 pathlib.Path.glob
支持列出所有文件,其他工具只是列出当前所有子目录中匹配的文件,子目录的子目录需要 **/**/*
.
3 .gitignore
git
的 .gitignore
文件可以使用 glob
模式匹配, 另外还有一些规则:
- 所有空行或者以
#
开头的行都会被Git
忽略 - 匹配模式可以以
/
开头防止递归 - 匹配模式可以以
/
结尾指定目录 - 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号
!
取反
4 Python glob
Python
有进行 glob
匹配的标准库, 使用也很简单:
# -*- coding: utf-8 -*-
import glob # glob 只有两个函数, 功能差不多, 只不过一个返回列表, 一个返回迭代器 glob.glob('*.org') # 返回所有后缀名为 .org 的文件 glob.iglob('*/') # 返回匹配所有目录的迭代器
标准库 glob
在 Python2
和 Python3
中是相同的。
Glob 语法及解析的更多相关文章
- Solr系列五:solr搜索详解(solr搜索流程介绍、查询语法及解析器详解)
一.solr搜索流程介绍 1. 前面我们已经学习过Lucene搜索的流程,让我们再来回顾一下 流程说明: 首先获取用户输入的查询串,使用查询解析器QueryParser解析查询串生成查询对象Query ...
- JSON【介绍、语法、解析JSON】
什么是JSON JSON:JavaScript Object Notation [JavaScript 对象表示法] JSON 是存储和交换文本信息的语法.类似 XML. JSON采用完全独立于任何程 ...
- JAVA企业级开发-xml基础语法&约束&解析(04)
一.什么是xml html:超文本标记语言.它主要是用来封装页面上要显示的数据,最后通过浏览器来解析html文件,然后把数据展示在浏览器上.同样我们可以使用JS和DOM技术对html文件进行解析和操作 ...
- Shell case语法结构解析
case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构,每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break,即执行结束,跳出整个 ...
- Gradle语法基础解析
在从ADT转移到AndroidStudio下开发,必然会遇到Gradle脚本打包的问题.看懂一个脚本最基本的前提就是了解它的语法,我在转移开发环境的过程中,也开始接触学习Gradle,在此做了一些总结 ...
- JS基础语法---预解析
预解析:就是在解析代码之前 1. 预解析做什么事? 把变量的声明提前了----提前到当前所在的作用域的最上面 函数的声明也会被提前---提前到当前所在的作用域的最上面 举例: function ...
- sass语法练习解析--实例练习
暂时使用的是:Koala,监测转义 $fff: #ffffff; $red:red; h1{ color: $fff; } 简单调用 #content{ color: $fff ...
- 用java实现一个简易编译器-语法解析
语法和解析树: 举个例子看看,语法解析的过程.句子:“我看到刘德华唱歌”.在计算机里,怎么用程序解析它呢.从语法上看,句子的组成是由主语,动词,和谓语从句组成,主语是“我”,动词是“看见”, 谓语从句 ...
- 初试Scala解析XML
使用Scala解析XML,充分体现了函数式编程的特点,简洁和明了.用Java去解析不是不行,只不过代码不够清晰明了. 首先先把XML文件读入到内存里: val someXml = XML.loadFi ...
随机推荐
- MyCms 开源自媒体系统后台 角色管理&管理员管理操作说明
角色管理 功能说明 一.添加角色基本信息 填写角色名称.简要描述(一般以角色功能.职位等信息来命名) 二.角色授权 点击右侧的"授权"按钮,进行对角色授权,选择需要授权的功能模块后 ...
- cp 不提示按y
yes|cp index.html.j2 yml -rf \cp index.html.j2 yml/ 两个效果是一样的
- .Net Api 之如何使用Elasticsearch存储文档
.Net Api 之如何使用Elasticsearch存储文档 什么是Elasticsearch? Elasticsearch 是一个分布式.高扩展.高实时的搜索与数据分析引擎.它能很方便的使大量数据 ...
- javascript 判断对像是否相等
在Javascript中相等运算包括"==","==="全等,两者不同之处,不必多数,本篇文章我们将来讲述如何判断两个对象是否相等? 你可能会认为,如果两个对象 ...
- FFT通过傅里叶级数图解频域补零时域内插
在时域频域的信号分析的过程中,一个常见的说法叫:频域数据补零会让时域数据内插. 意思是在频域数据中多补几个零,再做ifft(逆傅里叶变换)后的时域数据,会变得更加"细腻",分辨率会 ...
- Supervisor多进程管理 异常自动重启 可视化管理
一.序言 Supervisor是多进程管理工具,在Docker中相关联的进程能够通过supervisor来管理. 微服务项目开发阶段,可用于微服务子项目的启动管理. 支持web可视化管理,能够极大方面 ...
- 关于老Windows平板电脑睡眠状态下无法开机(睡死)的问题及解决方案
1.简述 前几天我从闲鱼上淘了一个二手Windows平板, 拿来上课记笔记用. 型号是联想的Thinkpad Helix 2nd, 2015年出产. cpu是酷睿m-5y71超低功耗处理器, TDP只 ...
- String类为什么可以直接赋值
在研究String直接赋值与new String的区别之前我们需要先了解java中的字符串常量池的概念 字符串常量池 String类是我们平常项目中使用频率非常高的一种对象类型,jvm为了提升性能和减 ...
- js 保存并排序输入内容
转载请注明来源:https://www.cnblogs.com/hookjc/ /* Create By:jiangcheng_15 Create Date:2012-01-32 */ functio ...
- Pandas常用操作 - 去重
1. 使用 drop_duplicates 去重 1.1 初始化数据 df = pd.DataFrame({'stu_name': ['Tom', 'Tony', 'Jack', 'Jack', np ...