当前位置: 首页 > news >正文

山西运城网站建设今日国内重大新闻

山西运城网站建设,今日国内重大新闻,没有外贸网站 如果做外贸,珠海市香洲区建设局网站匹配文件名称模块glob 1.概述 glob模式规则与re模块的正则表达式规则不大相同,glob模块遵循标准的UNIX路径扩展规则。 fnmatch模块用于根据glob模式比较文件名 2.glob表达式匹配文件名 2.1.测试文件 介绍glob配置规则前,先使用下面的代码创建测试文…

匹配文件名称模块glob

1.概述

glob模式规则与re模块的正则表达式规则不大相同,glob模块遵循标准的UNIX路径扩展规则。
fnmatch模块用于根据glob模式比较文件名

2.glob表达式匹配文件名

2.1.测试文件

介绍glob配置规则前,先使用下面的代码创建测试文件。

from pathlib import Pathp = Path('dir/subdir')
Path(p).mkdir(parents=True, exist_ok=True)pl = ['dir/file.txt', 'dir/file1.txt', 'dir/file2.txt', 'dir/filea.txt', 'dir/fileb.txt', 'dir/file?.txt','dir/file*.txt', 'dir/file[.txt', 'dir/subdir/subfile.txt']
for i in pl:myfile = Path(i)myfile.touch(exist_ok=True)

2.2.通配符

1.星号通配符

星号匹配一个文件名中0个或多个字符,这个模式会匹配dir目录中所有的文件,但不会递归到子目录查找。

import glob
for name in sorted(glob.glob('dir/*')):print(name)

运行结果

dir/file*.txt
dir/file.txt
dir/file1.txt
dir/file2.txt
dir/file?.txt
dir/file[.txt
dir/filea.txt
dir/fileb.txt
dir/subdir

下面是在匹配过程中假如了排序,和子目录查找。

import globprint('Named explicitly:')
for name in sorted(glob.glob('dir/subdir/*')):print('  {}'.format(name))print('Named with wildcard:')
for name in sorted(glob.glob('dir/*/*')):print('  {}'.format(name))

运行结果

Named explicitly:dir/subdir/subfile.txt
Named with wildcard:dir/subdir/subfile.txt

2.问号通配符

问号匹配文件名中单个字符

import globfor name in sorted(glob.glob('dir/file?.txt')):print(name)

运行结果

dir/file*.txt
dir/file1.txt
dir/file2.txt
dir/file?.txt
dir/file[.txt
dir/filea.txt
dir/fileb.txt

2.3.字符区间

使用字符区间,可以匹配字符区间中任意一个字符。例如 [a-z] 会匹配a到z范围的一个字符。

import glob
for name in sorted(glob.glob('dir/*[0-9].*')):print(name)

运行结果

dir/file1.txt
dir/file2.txt

2.4.转义元字符escape

有时候搜索的文件名包含一些特殊符号,这些符号不希望被转义。glob提供了escape函数使这些特殊符号不被glob解释为特殊字符。

specials = '?*['for char in specials:pattern = 'dir/*' + glob.escape(char) + '.txt'print('Searching for: {!r}'.format(pattern))for name in sorted(glob.glob(pattern)):print(name)print()

运行代码,下面中括号的字符都是原样输出,没有被转义。

Searching for: 'dir/*[?].txt'
dir/file?.txtSearching for: 'dir/*[*].txt'
dir/file*.txtSearching for: 'dir/*[[].txt'
dir/file[.txt

3.fnmatch比较文件名

3.1.简单匹配fnmatch

使用一个模式来匹配一个文件,返回布尔值。如果操作系统使用一个区分大小写的文件系统,则这个比较就区分大小写。

import fnmatch
import ospattern = 'my_*.py'
print('Pattern :', pattern)
print()files = os.listdir('.')
for name in sorted(files):print('Filename: {:<25} {}'.format(name, fnmatch.fnmatch(name, pattern)))

运行代码,他会匹配my_开头,py结尾的文件。

Pattern : my_*.pyFilename: __init__.py               False
Filename: dir                       False
Filename: my_test.py                True
Filename: myfile.txt                False

3.2.区分大小写匹配fnmatchcase

要强制完成一个区分大小写的比较,不论文件系统和操作系统如何设置,可以使用fnmatchcase()

import fnmatch
import ospattern = 'FNMATCH_*.PY'
print('Pattern :', pattern)
print()files = os.listdir('.')for name in sorted(files):print('Filename: {:<25} {}'.format(name, fnmatch.fnmatchcase(name, pattern)))

运行上面的代码,他能够强制区分大小写匹配。

Pattern : FNMATCH_*.PYFilename: __init__.py               False
Filename: dir                       False
Filename: my_test.py                False
Filename: myfile.txt                False

3.3.过滤filter

filter会返回与模式匹配的文件名列表

import fnmatch
import os
import pprintpattern = 'my_*.py'
print('Pattern :', pattern)files = list(sorted(os.listdir('.')))print('\nFiles   :')
pprint.pprint(files)print('\nMatches :')
pprint.pprint(fnmatch.filter(files, pattern))

运行上面的代码,过滤出my_开头,py结尾的文件。

Pattern : my_*.pyFiles   :
['__init__.py', 'dir', 'my_test.py', 'myfile.txt']Matches :
['my_test.py']

3.4.转换模式

fnmatch将glob模式转换为一个正则表达式,并使用re模块比较文件名和模式。translate()函数是将glob模式装换为正则表达式的公共API。

import fnmatchpattern = 'fnmatch_*.py'
print('Pattern :', pattern)
print('Regex   :', fnmatch.translate(pattern))

运行结果

Pattern : fnmatch_*.py
Regex   : (?s:fnmatch_.*\.py)\Z
http://www.dt0577.cn/news/10348.html

相关文章:

  • 东兴网站建设独立站谷歌seo
  • 三角网站建设上海好的网络推广公司
  • 找建筑类工作哪个网站好搜索引擎营销概念
  • 求一个做美食视频的网站自己如何注册网站
  • 哪个网站做logo赚钱今日最新国际新闻
  • 宜宾商城网站建设百度大搜
  • 网站制作公司商丘市查看百度关键词价格
  • 莱州网站开发怎么请专业拓客团队
  • 网站做任务包括什么谷歌外链代发
  • 公司架设网站费用怎么做分录好用搜索引擎排名
  • 京东网站开发费用营销策划方案模板
  • 网站建设项目策划书格式免费投放广告的平台
  • 宁波新亚建设公司网站百度指数什么意思
  • 黄金网站网址免费营销培训课程
  • 免费试用网站制作办公软件培训
  • 自己做的网站竞价好还是单页好关键词查询爱站网
  • 国外做ae模板网站大全seo博客优化
  • 做网站美工的前途怎么样网络公关公司
  • 网站后台首页网上推广怎么收费
  • 网站怎么做图片滚动最新黑帽seo教程
  • 怎么做网站扫描贷款客户大数据精准获客
  • 国内电商平台网站制作排行榜网站推广计划书范文500字
  • 创建大型网站chrome浏览器官网入口
  • 做游戏ppt下载网站有哪些免费发布推广信息的b2b
  • mir设计公司官网广东seo快速排名
  • 做源码演示的网站郑州网站技术顾问
  • 有口碑的常州网站优化产品的网络推广要点
  • 网络舆情监测与研判网站查询seo
  • 南宁门户网站建设整站外包优化公司
  • 有没有专门做av字幕的网站工具刷网站排刷排名软件