如何批量修改照片文件名?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何批量修改照片文件名?相关的知识,希望对你有一定的参考价值。
我们有一堆照片,使用序号命名,我们现在想要将它的命名改序号加姓名,,请问有没有简便的方法。能不能最好不要一个一个的改,求简便方法。
===========================假设你的文件都在c:\picture\目录里,名字是张三.jpg, 李四.jpg等等
Excel里面A B两列分别是:
张三,110108190001010011
李四,122036200901010022
...
===========================
按以下步骤操作:
1. 在C1单元格里加入以下公式
="rename ""c:\picture\"&A1&".jpg"" "&B1&".jpg"
2. 点C1右下角的加号把公式向下拖动到整个C列
3. 那么C列的内容就变成了:
rename "c:\picture\张三.jpg" 110108190001010011.jpg
...
4. 把C列的内容复制出来,打开记事本粘贴进去,然后保存为r.bat, 点击r.bat运行即可。
注意:
1. 提前备份,以防操作失误
2. 注意根据实际情况修改公式里的目录c:\picture
3. 最好把姓名和身份证号放在A/B两列,这样就不用修改公式里的其他部分。 参考技术A
批量修改照片名称的方法:
步骤1,下载软件工具后安装打开使用,点击【添加文件】按钮将照片全部导入到软件中,也可以通过拖拽图片到软件上的方式进行添加。
步骤2,导入完照片后就可以进行设置了,命名方式选择“自定义”;然后在下面输入新文件名;最后进行编号设置:起始是一个照片的编号,增量是后一个编号比前一个增加的数值,位数是编号一共几位的意思(如01的位数是2)。在右边可以实时预览到新的照片名称,方便我们及时调整。
步骤3,当你预览觉得新名称没有问题后点击【开始重命名】按钮,启动软件程序。当弹出“重命名”成功的提示框时说明软件处理完成啦。
步骤4,查看刚刚修改后的照片名称,可以看到新的照片名称很规范,有文件名有编号,非常的整齐好看。
参考技术B 文件名只有序号,那么脚本要想重命名为序号加姓名,那么就必须得让脚本或软件知道每个序号对应的姓名是什么,这样才能写出批量重命名的脚本或软件。您习惯用excel的话,那么就像您表格中那样生成相应命令,然后把这个命令保存为bat脚本,并放至文件那执行即可。追问
bat脚本内容怎么写,我不懂命令,网上查的都用不了,还有的改后是乱码
追答您excel右侧不是已经有生成的命令吗?直接拷贝它们,然后粘贴到一个新文本中,文本保存时的编码务必选择为ANSI,这样就不会乱码了。然后文本后缀名改为bat即可。把这个bat放到图片文件一起即可
如果您有对应的名字和序号列表文件,限于文本,那么倒是可以直接通过脚本读取列表来进行修改。
您看看想要哪种方式?
<# :
cls
@echo off
rem 将当前目录里的多个jpg文件按照原有排序分别在名称末尾添加不同字符串内容
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::GetEncoding('GB2312')))) -Args '%~f0'"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$ext=@('.jpg');
$namelist=@"
刘一
陈二
张三
李四
王五
赵六
孙七
周八
吴九
郑十
"@;
$codes=@'
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
public static class ExpDir
[DllImport("Shlwapi.dll", CharSet=CharSet.Unicode)]
public static extern int StrCmpLogicalW(string p1, string p2);
public static string[] Sort(string[] f)
Array.Sort(f, StrCmpLogicalW);
return f;
'@;
Add-Type -TypeDefinition $codes;
$arr=$namelist.trim() -split '[\r\n]+';
[byte[]]$b=@(32,45,45,62,32);
$c=[Text.Encoding]::Default.GetString($b);
$self=get-item -liter $args[0];
$path=$self.Directory.FullName;
$files=@(dir -liter $path|?($ext -contains $_.Extension) -and ($_ -is [System.IO.FileInfo])|%$_.Name);
if($files.length -ge 1)
$brr=[ExpDir]::Sort($files);
for($i=0;$i -lt $brr.length;$i++)
$f=get-item -liter $brr[$i];
if($i -lt $arr.length)
$newname=$f.BaseName+$arr[$i]+$f.Extension;
$brr[$i]+$c+$newname;;;追问
不行啊
文件太少了,这是一一对应关系,姓名数量跟文件数量要一致
Python批量修改照片日期
需求
最近整理老照片,有一些照片缺失日期信息,或者日期显示错误,传到手机相册就会显示在上传的这一天,导致时间线错乱。
因为照片文件名包含日期(比如IMG_20210422_075810.jpg),所有可以根据文件名修改照片日期,这样在手机里就可以按照时间线排列了,主要利用piexif库修改JPG照片的Exif信息。
# photo time correction
# 2021.04 @Wendell
# 需求:一些照片exif里面没有日期信息,传到手机就会显示在上传的这一天,导致时间线错乱
# 发现文件名包含日期,根据文件名修改照片日期,这样在手机里就可以按照时间线排列了
import os
import piexif
def checkFormat(photoPwd):
'''
检查文件类型是否为图片格式
'''
(root, ext) = os.path.splitext(photoPwd)
return str.upper(ext[1:]) # 返回文件后缀类型
def getTime(photoName):
'''
根据文件名特征提取照片拍摄日期,转换为Exif时间格式
from 'IMG_20210422_075810.jpg' to '2024:04:22 07:58:10'
'''
pN = photoName
# from IMG_20210422_075810.jpg to 2024:04:22 07:58:10
imgTime = f'pN[4:8]:pN[8:10]:pN[10:12] pN[13:15]:pN[15:17]:pN[17:19]'
return imgTime
def setDate(photoName, photoPwd):
'''
给没有时间的照片加上时间
'''
imgTime = getTime(photoName)
# 设置Exif信息
exif_dict = piexif.load(photoPwd) # 读取现有Exif信息
exif_dict['0th'][piexif.ImageIFD.DateTime] = imgTime # 注意DateTime在ImageIFD里面
exif_dict['Exif'][piexif.ExifIFD.DateTimeOriginal] = imgTime
exif_dict['Exif'][piexif.ExifIFD.DateTimeDigitized] = imgTime
exif_bytes = piexif.dump(exif_dict)
# 插入Exif信息
piexif.insert(exif_bytes, photoPwd)
def changePhotoTime(folder):
"""
修改该路径下的所有JPG照片的时间
"""
for photoName in os.listdir(folder):
photoPwd = os.path.join(folder, photoName) # 照片的绝对路径
if checkFormat(photoPwd) == 'JPG': # 如果是JPG
setDate(photoName, photoPwd)
if __name__ == '__main__':
'''
folder: 文件夹路径
'''
folder = r"D:\\照片\\测试"
changePhotoTime(folder)
以上是关于如何批量修改照片文件名?的主要内容,如果未能解决你的问题,请参考以下文章