使用了下thrift,出现了一些路径问题。原来是glob.glob函数捣的鬼。所以扒了下英文文档,有些收获。下面分享。

函数功能:匹配所有的符合条件的文件,并将其以list的形式返回。

一.glob.glob的介绍和一些实现细节

1.glob.glob函数的参数是字符串。这个字符串的书写和我们使用linux的shell命令相似,或者说基本一样。也就是说,只要我们按照平常使用cd命令时的参数就能够找到我们所需要的文件的路径。字符串中可以包括“*”、“?”和"["、"]",其中“*”表示匹配任意字符串,“?”匹配任意单个字符,[0-9]与[a-z]表示匹配0-9的单个数字与a-z的单个字符。

2.glob.glob不支持“~”波浪符号,这个符号在linux代表当前用户的home目录。

3.官方文档上说“This is done by using the os.listdir() and fnmatch.fnmatch() functions in concert, and not by actually invoking a subshell”,(这个函数是通过配合使用os.listdir()与fnmatch.fnmatch()实现的,而非调用一个子shell)。但是在他的源代码中没有找到这两个函数的调用痕迹。

4.官方源代码中,返回的是一个list,但是它是使用iterator实现的。所以,它的内存占用是常数级别的。注意,他这里使用了yield关键字来实现iterator。

这是一些细节问题。

二.使用glob.glob获得文件路径

1.在ubuntu下,获得当前文件夹下的文件。如,当前路径为/home/,在这里有文件夹chen,文件sssde.ini。如图:
        参数为相对路径“./*”或者“*”获得所有文件路径。如果文件名是已知的,那么参数为“./filename”或者“filename”如下:
import glob
glob.glob("*")

所得结果如下:

2.怎么获得当前目录的某个子目录的文件呢?
        子文件也属于相对路径,所以使用“./*/filename”或者“*/filename”。这里一个“*/”代表下一层文件夹。如当前我们在“/”下,要找/home/chen文件夹下的文件“1.sh”。参数是“*/*/1.sh”,效果如下:
3. 如果当前我们在/home/chen文件夹下,那么怎么获得在/tmp文件加下的grub文件的路径呢?
        这里,使用绝对路径较好,也就是使用类似“/*/*”的参数。要解决这个问题,我们的参数应该为“/*/grub”,效果如下:

总结:glob.glob的参数是一个只含有方括号、问号、正斜线的正则表达式,同时也是shell命令(就是那些我们用在cd命令后面的参数)。就像官方文档的第一句所说那样"The glob module finds all the pathnames matching a specified pattern according to the rules used by the Unix shell."

python glob.glob使用相关推荐

  1. Python库glob学习笔记

    glob是用于匹配符合指定模式的文件集合的语言 glob类似于正则表达式,最重要的功能就是搜索获取同一级或者各子级下符合条件的文件(绝对路径),非常适合写批处理的代码. 有时候我们需要对大量文件进行相 ...

  2. Python之glob模块进行文件匹配及遍历

    Python之glob模块进行文件匹配及遍历 glob是python自带的一个操作文件的相关模块,用来查找符合特定规则的文件路径,是python处理文件路径相关问题中常用的包. glob 文件名模式匹 ...

  3. Python中glob.glob的排序问题

    python的glob模块,我们可以用它批量抓取某种格式.或者以某个字符打头的文件名 import glob import numpy as np import linecache import os ...

  4. python 的标准库模块glob使用教程,主要为glob.glob()使用与glob.iglob()使用

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 python 的标准库模块glob使用教程,主要为glob.glob函数使用与glob.iglob函数使用 文章目录: ...

  5. Python:glob模块

    glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索,支持通配符操作(*  ?  []),*代表0个或多个字符,?代表一个字符,[]匹 ...

  6. Python 之glob模块

    fnmatch模块是python下的通配符,但是fnmatch只是针对字符串而言,与文件在系统上是否真实存在无关, glob模块是列出符合匹配模式的目录下的文件. >>> impor ...

  7. python 安装html,python安装glob

    python 里面的glob模块是怎么用的 新手刚学这一块内容,不是很懂 这个模块可以用来统计每个类型物品的统计glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类 ...

  8. Python库glob作用分析

    Python 中 glob 作用简介 glob库中有两个函数:glob.glob(), glob.iglob(). 其作用是:遍历给定文件夹下所有符合条件的文件. 常用的匹配符有: * 代表所有 ? ...

  9. python: glob模块

    '''在python中,glob模块是用来查找匹配的文件的在查找的条件中,需要用到Unix shell中的匹配规则:* : 匹配所所有? : 匹配一个字符*.* : 匹配如:[hello.txt,ca ...

  10. python glob.glob

    前言 在做NLP数据预处理的时候,经常会遇一种情况(拿文本分类举例子):假设我们的文本有7类,正常情况下我们可以把所有的训练数据都写到一个文件中,然后将其对应的标签写到另一个文件中,但是有很多时候数据 ...

最新文章

  1. 【蓝桥java】递归基础之振兴中华
  2. 在线学位课程_如何选择计算机科学学位课程
  3. php Session存储到Redis的方法
  4. Map集合HashMap TreeMap的输出方法
  5. HDU2019 数列有序!
  6. 怎样实现banner自动播放html,纯css实现轮播图banner自动轮换效果
  7. python判断回文_Python实现判断一个整数是否为回文数算法示例
  8. 游戏服务器运维需要注意,网络游戏服务器维护时都是在做些什么?
  9. 答读者:数学不好,能学好算法吗?
  10. python常用的表达式有关系表达式_数学关系式 表示成正确的 Python表达式为_________。_学小易找答案...
  11. 函数 fprintf() 使用说明
  12. 无障碍感受 北京之美
  13. 播放失败246106异常代码_美的燃气热水器修理分享(附代码解释)
  14. java zlib1.dll,zlib1.2.11静态编译
  15. ESI文章详细信息获取
  16. 使用Cardme读取安卓IOS导出的vcf格式通讯录
  17. ArcGis Server安装与使用
  18. 【JVM】你好--JVM
  19. 数据结构与算法|第1节
  20. Keepalived 配置详解与主备模式

热门文章

  1. 装箱问题c语言函数,C语言基于贪心算法解决装箱问题的方法
  2. FileReader()用法
  3. 【云真机平台】稳定性测试自动化脚本
  4. 关于Map线程安全的几种实现方案
  5. 131-从键盘输入一个字符串,将其中的小写字母全部换成大写字母,然后输出到一个磁盘文件
  6. Lock wait timeout exceeded; try restarting transaction
  7. Qt中使用qrc管理和使用资源文件
  8. 狼性团队也需柔性管理
  9. 搭建Android应用程序的服务器
  10. 微信自动回复功能实现