网站首页 > java教程 正文
glob模块
glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。
查找文件只用到三个匹配符:*, ?,[]
- *匹配0个或多个字符;
- ?匹配单个字符;
- []匹配指定范围内的字符,如:[0-9]匹配数字。
glob.glob 返回所有匹配的文件路径列表。
它只有一个参数 pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径。
下面是使用glob.glob的例子:
import glob
files=glob.glob(r"D:/work/*") #获取指定目录下所有的文件,返回文件列表
glob.glob(r"E:/Picture/*/*.jpg") #获取指定目录下的所有图片
#获取上级目录的所有.py文件
print (glob.glob(r'../*.py')) #相对路径
glob.glob('./[0-9].*')#获取当前目录下的文件
['./1.gif', './2.txt']
glob.glob('*.gif') #获取当前目录下的gif文件
['1.gif', 'card.gif']
glob.iglob返回一个可迭代对象,使用它可以逐个获取匹配的文件路径名。
与glob.glob()的区别是:glob.glob同时获取所有的匹配路径,而glob.iglob返回的是可迭代对象,一次只获取一个匹配路径,这有点类似于.NET中操作数据库用到的DataSet与DataReader。下面是一个简单的例子:
import glob
#父目录中的.py文件
f = glob.iglob(r'../*.py') #f是一个可迭代对象
print (f)
for py in f:
print(py)
fileinput 与 glob 结合使用
import fileinput
import glob
for line in fileinput.input(glob.glob("*.csv")):
if fileinput.isfirstline():
print(f'Reading {fileinput.filename()}...'.center(50,'-'))
print(str(fileinput.filelineno()) + ': ' + line.upper(), end="")
输出
- ---------------Reading info1.csv...---------------
- 1: |编号| |性别| |年龄| |成绩|
- 2: 961067 |男| 23 97
- 3: 969157 |男| 38 98
- ---------------Reading info2.csv...---------------
- 1: "编号","性别","年龄","成绩"
- 2: 969237,"男",27,120
- 3: 970394,"男",27,118
猜你喜欢
- 2025-03-29 让瘫痪者行走、让失语者“说话”!脑机接口离临床应用还有多远?
- 2025-03-29 树搜索也存在过思考与欠思考?腾讯AI Lab与厦大提出高效树搜索框架
- 2025-03-29 Go语言-导入路径(go语言目录)
- 2025-03-29 Java的SPI机制详解(java spi使用)
- 2025-03-29 常见网址开头http://和https://有何区别?带你一键解析网址结构
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)