学习笔记--文件夹处理--代码学习

场景一: 有一个存放图片的文件夹,读取所有同类型图片,并把图片名字读进一个数组里。
文件夹image下存放着3张同为.jpeg扩展名的图片

img_ids = glob(os.path.join( 'image', '*' + "jpeg"))
print("img_ids",img_ids)

输出结果

['image\\1fregfsf2.jpeg','image\\1f2334rf2.jpeg','image\\1hfudsgfe.jpeg']
img_ids = [os.path.splitext(os.path.basename(p))[0] for p in img_ids]
这句代码等价
img_name=[]
for p in img_ids:
	os.path.splitext(os.path.basename(p))[0]
	img_name.append(f)	

输出结果

['1fregfsf2', '1f2334rf2', '1hfudsgfe']
代码拆分解析
img_name=[]
for p in img_ids:
    print("p",p)#逐个输出数组内容
    # 输出image\\1fregfsf2.jpeg
    i=os.path.basename(p) #返回最后一段文件名,
    print("i",i)
    # 输出1fregfsf2.jpeg
    q=os.path.splitext(i)#分离文件名和扩展名    
    print("q",q)
    # 输出('1fregfsf2','.jpeg')
    g=g[0]
    # 输出1fregfsf2
    img_name.append(f)#读进数组中

总结

img_ids = glob(os.path.join( 'image', '*' + "jpeg"))
img_ids = [os.path.splitext(os.path.basename(p))[0] for p in img_ids]

补充

字符串分离方法

a='crop//image//12kiwofjw99j.jpg'
b=a.split('//',2)[2]
print("b",b)
# 输出 12kiwofjw99j.jpg 
img_id = b.split(".", 1)[0]
print("img_id",img_id)
# 输出 12kiwofjw99j

split函数 b=a.split(‘//’,2) b=[‘crop’, ‘image’, ‘12kiwofjw99j.jpg’]
以“//”符号给字符串a进行分离,2分离两次,也就是切成三段。[2]是取数组中的第三个数,这里就是’12kiwofjw99j.jpg’

文件夹内容读取,文件里面套着文件

你可能感兴趣的:(学习)