python实用脚本2:批量重命名文件

前言

工作中经常有重命名大量文件的需求,因此可以考虑用程序来一键完成。这个功能比较简单,可以多收集几种版本来测试一下~~

Python

使用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)

扩展:

  • 可以写一个start.bat脚本让用户拖拽文件夹输入文件夹路径,用sys模块获取命令行参数。
  • 可以用正则表达式匹配和替换更加复杂的文件名

Powershell

$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") }

Bat

@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

shell

des="XXX"
src="xxx"

for var in `ls $src*`;
do
	mv "$var" "${var/$src/$des}";
done

总结

Windows下推荐使用一行powershell代码,简洁高效,Windows自带powershell,不用安装任何软件。Linux下必须是shell脚本,谁不用谁傻~~

你可能感兴趣的:(python实用脚本)