python模块学习---glob 文件路径查找

时间:2022-09-01 21:43:52

转自:http://www.cnblogs.com/hongten/p/hongten_python_glob.html

转自:http://blog.csdn.net/haoni123321/article/details/13624537

1、glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:"*", "?", "[]"。"*"匹配0个或多个字符;"?"匹配单个字符;"[]"匹配指定范围内的字符,如:[0-9]匹配数字。

glob.glob(pathname), 返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径。

glob.iglob(pathname), 获取一个可编历对象,使用它可以逐个获取匹配的文件路径名。与glob.glob()的区别是:glob.glob同时获取所有的匹配路径,而glob.iglob一次只获取一个匹配路径。

[python] view plain copy
  1. import glob  
  2.   
  3. print glob.glob(r'E:\*\*.doc')  
  4. print glob.glob(r'.\*.py')  
  5.   
  6. f = glob.iglob(r'.\*.py')  
  7.   
  8. for py in f:  
  9.     print py  
运行结果:

[python] view plain copy
  1. ['E:\\test_file\\adplus.doc']  
  2. ['.\\perfrom_test.py''.\\pyTest.py''.\\simulation_login.py''.\\widget.py''.\\__init__.py']  
  3. .\perfrom_test.py  
  4. .\pyTest.py  
  5. .\simulation_login.py  
  6. .\widget.py  
  7. .\__init__.py  



'''
python中,glob模块是用来查找匹配的文件的
在查找的条件中,需要用到Unix shell中的匹配规则:

* : 匹配所所有
? : 匹配一个字符
*.* : 匹配如:[hello.txt,cat.xls,xxx234s.doc]
?.* : 匹配如:[1.txt,h.py]
?.gif: 匹配如:[x.gif,2.gif]
可以参考:fnmatch
如果没有匹配的,glob.glob(path)将返回一个空的list:[]
'''
python模块学习---glob 文件路径查找

以下是我的demo

运行效果

python模块学习---glob 文件路径查找

=============================================

代码部分:

=============================================

python模块学习---glob 文件路径查找
 1 #python glob
2
3 '''
4 在python中,glob模块是用来查找匹配的文件的
5 在查找的条件中,需要用到Unix shell中的匹配规则:
6
7 * : 匹配所所有
8 ? : 匹配一个字符
9 *.* : 匹配如:[hello.txt,cat.xls,xxx234s.doc]
10 ?.* : 匹配如:[1.txt,h.py]
11 ?.gif: 匹配如:[x.gif,2.gif]
12
13 如果没有匹配的,glob.glob(path)将返回一个空的list:[]
14 '''
15 import glob
16
17 def get_all():
18 '''获取目录[c:\\tmp]下面所有的文件'''
19 return glob.glob('c:\\tmp\\*.*')
20
21 def get_my_file():
22 '''获取目录[c:\\tmp]下面文件名为4个字符的文件'''
23 return glob.glob('c:\\tmp\\????.txt')
24
25 def get_batch_file():
26 '''获取目录[c:\\tmp]下面扩展名为\'.txt\'的文件'''
27 return glob.glob('c:\\tmp\\*.txt')
28
29 def main():
30 print('获取目录[c:\\tmp]下面所有的文件:')
31 tem_files = get_all()
32 print(tem_files)
33 print('获取目录[c:\\tmp]下面文件名为4个字符的文件:')
34 tem_files = get_my_file()
35 print(tem_files)
36 print('获取目录[c:\\tmp]下面扩展名为\'.txt\'的文件:')
37 tem_files = get_batch_file()
38 print(tem_files)
39
40 if __name__ == '__main__':
41 main()