做图像处理时,经常要读取文件名、路径或者配置参数。这些信息本质上都是字符串,而我们需要从中提取关键内容,比如判断一张图是不是PNG格式,或者找出文件名里的编号部分。这时候,字符串查找某个字符就成了基本功。
举个例子,你从相机导出了一堆照片,文件名像 IMG_20230815_001.CR2、IMG_20230815_002.CR2 这样。你想批量筛选出所有CR2格式的原片,就得检查每个文件名最后几个字符是不是"CR2"。更常见的是,你要拆分文件名,比如用下划线"_"把 IMG 和日期分开,这就得先找到下划线的位置。
用 indexOf 查找字符位置
在 JavaScript 中,字符串的 indexOf 方法能快速定位某个字符第一次出现的位置。比如:
var filename = "IMG_20230815_001.CR2";
var pos = filename.indexOf(".");
console.log(pos); // 输出 16这个位置值就能帮你用 substring 截取后缀名,做格式判断。如果返回 -1,说明没找到,比如查一个不存在的字符,那就不是你要的文件。
按分隔符拆分字符串
很多时候我们不只找一个字符,而是想切开字符串。比如上面的文件名,用下划线分割就很自然:
var parts = filename.split("_");
console.log(parts); // ["IMG", "20230815", "001.CR2"]这样日期和序号就分开了,方便后续处理。再结合 indexOf 或 lastIndexOf 找最后一个点,还能把序号和后缀也分开。
在 Python 脚本里处理图像批量重命名时也一样。比如你想把所有 JPG 文件加上“已处理”标记:
if filename.endswith('.jpg'):
new_name = filename.replace('.jpg', '_processed.jpg')这背后还是基于对字符的识别和定位。哪怕你在写 OpenCV 的脚本,读取配置文件时解析 key=value 的行,也要用到 find 或 index 方法去找等号位置。
图像处理流程中,自动化脚本依赖大量字符串操作。看似简单的查找字符,其实是打通文件管理、命名规则和数据分类的关键一环。熟练掌握这些小技巧,能让你在处理成百上千张图时少翻车,多省心。