工作中经常有重命名大量文件的需求,因此可以考虑用程序来一键完成。这个功能比较简单,可以多收集几种版本来测试一下~~
使用os.listdir()方法返回当前目录下的所有文件名,对每一个文件名字符串用str.replace()方法做替换操作,然后用os.rename()方法重命名。
import os
des_name = 'XXX'
src_name = 'xxx'
for old_file in os.listdir('./'):
new_file = old_file.replace(src_name, des_name)
os.rename(old_file, new_file)
扩展:
$dir = dir .
$des = "XXX"
$src = "xxx"
foreach ($_ in $dir) {
if ($_.name -match $src) {
Rename-Item $_.name $_.name.replace($src, $des)
}
}
写成一行代码
Dir | Where-Object { $_.Name -match "XXX" } | ForEach-Object { Rename-Item $_.Name $_.Name.replace("XXX", "xxx") }
@echo off & setlocal enableDelayedExpansion
set des=XXX
set src=xxx
for /f %%i in ('dir /b %src%*') do (
set old_name=%%i
set new_name=!old_name:%src%=%des%!
ren "!old_name!" "!new_name!"
)
echo 文件重命名成功
pause
des="XXX"
src="xxx"
for var in `ls $src*`;
do
mv "$var" "${var/$src/$des}";
done
Windows下推荐使用一行powershell代码,简洁高效,Windows自带powershell,不用安装任何软件。Linux下必须是shell脚本,谁不用谁傻~~