编写pytohn脚本时通常需要批处理。

列出指定目录下的所有文件/文件夹

os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表,但有个很明显的缺点,它的默认顺序不是有序的或者说不是通常的顺序(不知道用啥排的)。

由于返回值是list类型,所以可以使用sort()

import os

path = "./Pictures/images/"
files = os.listdir(path)
for filename in files:
print(filename)

结果(可见此时并非有序):

现进行排序,sort是根据字典序排,为了更加准确,应将字符串转换为数字排序。

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)

处理文件名

1、去除前导零

import os

path = "./Pictures/images/"
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 "" 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(""):
print(filename) print("end with \"2.jpg\"")
for filename in files:
if filename.endswith("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的排序问题  https://www.cnblogs.com/jins-note/p/9550388.html

2、python版的文件批量读写和保存等 https://blog.csdn.net/sinat_36458870/article/details/78825571

最新文章

  1. 组合模式及C++实现
  2. Java数据库连接——JDBC调用存储过程,事务管理和高级应用
  3. VS2010 winform程序发布步骤
  4. java的nio之:java的nio系列教程之DatagramChannel
  5. 类成员函数指针 ->*语法剖析
  6. 使用cnpm搭建企业内部私有NPM仓库
  7. 新手浅谈Task异步编程和Thread多线程编程
  8. centos 卸载vsftpd方法
  9. MapReduce架构设计
  10. Python开发笔记之正则表达式的使用
  11. html标签data大写获取不到值:只能小写+横杠命名
  12. window.open 使用方法
  13. [转]深入浅出JSONP--解决ajax跨域问题
  14. 数据库(Mongodb)
  15. 连接到github
  16. mac 命令行安装软件
  17. Paint it really, really dark gray CodeForces - 717E
  18. ASP.NET MVC5高级编程 之 HTML辅助方法
  19. Confluence 6 创建小组的公众空间
  20. QT开发环境搭建

热门文章

  1. js转义字符
  2. 纯CSS,多个半圆以中心点旋转
  3. Python学习笔记(字典)
  4. 剑指Offer的学习笔记(C#篇)-- 包含min函数的栈
  5. 基于ZFAKA二次开发,添加PayJS支付渠道
  6. Python-12-简单推导
  7. Python web前端 10 bootstrp
  8. 前端HTML(二/三)
  9. scala worksheet demo
  10. NET Core+MySql+Nginx