python glob.glob使用
2015-08-24 11:59
357 查看
使用了下thrift,出现了一些路径问题。原来是glob.glob函数捣的鬼。所以扒了下英文文档,有些收获。下面分享。
1.在ubuntu下,获得当前文件夹下的文件。如,当前路径为/home/,在这里有文件夹chen,文件sssde.ini。如图:
参数为相对路径“./*”或者“*”获得所有文件路径。如果文件名是已知的,那么参数为“./filename”或者“filename”如下:
所得结果如下:
2.怎么获得当前目录的某个子目录的文件呢?
子文件也属于相对路径,所以使用“./*/filename”或者“*/filename”。这里一个“*/”代表下一层文件夹。如当前我们在“/”下,要找/home/chen文件夹下的文件“1.sh”。参数是“*/*/1.sh”,效果如下:
3.如果当前我们在/home/chen文件夹下,那么怎么获得在/tmp文件加下的grub文件的路径呢?
这里,使用绝对路径较好,也就是使用类似“/*/*”的参数。要解决这个问题,我们的参数应该为“/*/grub”,效果如下:
总结:glob.glob的参数是一个只含有方括号、问号、正斜线的正则表达式,同时也是shell命令(就是那些我们用在cd命令后面的参数)。就像官方文档的第一句所说那样"The glob module
函数功能:匹配所有的符合条件的文件,并将其以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操作MySQL
- windows下面python复制文件的几种方法
- Python面试里面的那些问题
- Python生成QRcode
- Python 获得命令行参数的方法
- Python time mktime()方法
- Head First Python 学习笔记-Chapter4:持久化--将数据写入文件
- 升级Python2.6.6至2.7.5
- python 使用pymssql连接sql server数据库
- <<Python基础课程>>学习笔记 | 文章13章 | 数据库支持
- python3爬虫 - cookie登录实战
- python3爬虫 - cookie登录实战
- python如何连接mysql数据库
- Python自然语言处理学习笔记之选择正确的特征(错误分析 error analysis)
- python 语言技巧特点
- python提示UnicodeDecodeError: ‘utf8’ codec can’t decode byte 0xa1 in position 6: invalid start byte
- Windows后台运行python程序
- python mysql
- python 实现PCA
- libsvm python grid.py C和gamma 两个参数的训练