python 中os.listdir ()函数读取⽂件夹
编写pytohn脚本时通常需要批处理。
列出指定⽬录下的所有⽂件/⽂件夹
os.listdir() ⽅法⽤于返回指定的⽂件夹包含的⽂件或⽂件夹的名字的列表,但有个很明显的缺点,它的默认顺序不是有序的或者说不是通常的顺序(不知道⽤啥排的)。由于返回值是list类型,所以可以使⽤sort()
结果(可见此时并⾮有序):
现进⾏排序,sort是根据字典序排,为了更加准确,应将字符串转换为数字排序。
处理⽂件名
1、去除前导零
import os
path = "./Pictures/images/"
files = os.listdir(path)
for filename in files:
print (filename)
import os
path = "./Pictures/images/"
files = os.listdir(path)
#files.sort()
files.sort(key = lambda x:int(x[:-4]))
for filename in files:
print (filename)
import os
path = "./Pictures/images/"
python怎么读文件夹下的文件夹files = os.listdir(path)
#files.sort()
files.sort(key = lambda x:int(x[:-4]))
for filename in files:
filename = str(int(filename[:-4])) + ".jpg"
print (filename)
2、列出包含指定字符串的⽂件
import os
path = "./Pictures/images/"
files = os.listdir(path)
files.sort(key = lambda x:int(x[:-4])) for filename in files:
if"1"in filename:
print(filename)
3、列出以指定字符串开头或结尾的⽂件import os
path = "./Pictures/images/"
files = os.listdir(path)
files.sort(key = lambda x:int(x[:-4])) print("start with \"001\"")
for filename in files:
if filename.startswith("001"):
print(filename)
print("end with \"2.jpg\"")
for filename in files:
dswith("2.jpg"):
print(filename)
完整的程序:
将images中的⽂件经均值模糊后保存到images_blur,对应的⽂件名不变。import os
import cv2
import numpy as np
def solve():
input_dir = "./Pictures/images/"# 保存截取的图像⽬录 output_dir = "./Pictures/images_blur"# 读取图⽚⽬录表
image_list=os.listdir(input_dir) #获得⽂件名
image_list.sort()
index = 1
for file in image_list:
print('正在处理图像: %s' % index)
img_path = input_dir + file
print(img_path)
img = cv2.imread(img_path)
img = cv2.blur(img, (3,3))
cv2.imwrite(output_dir + '/' + file,img)
print(output_dir + '/' + file)
index += 1
if__name__ == '__main__':
solve()
参考链接:
1、Python中os.listdir的排序问题
2、python版的⽂件批量读写和保存等
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论