需求:能把指定目录下的文件名中含有的一个字替换,不修改扩展名
代码:php
<?php
// 指定目录
$dir = "path/to/directory";
// 需要替换的字符和替换后的字符
$oldChar = "a";
$newChar = "b";
// 打开目录
if ($dh = opendir($dir)) {
// 遍历目录下的文件
while (($file = readdir($dh)) !== false) {
// 排除当前目录和上级目录
if ($file != "." && $file != "..") {
// 判断文件名中是否包含需要替换的字符
if (strpos($file, $oldChar) !== false) {
// 获取文件扩展名
$ext = pathinfo($file, PATHINFO_EXTENSION);
// 获取去除扩展名后的文件名
$basename = basename($file, "." . $ext);
// 替换字符
$newName = str_replace($oldChar, $newChar, $basename) . "." . $ext;
// 重命名文件
rename($dir . "/" . $file, $dir . "/" . $newName);
}
}
}
// 关闭目录
closedir($dh);
}
?>
python:
import os
# 指定目录
dir_path = "/path/to/directory"
# 需要替换的字符和替换后的字符
old_char = "a"
new_char = "b"
# 遍历目录下的文件
for file_name in os.listdir(dir_path):
# 判断是否为文件
if os.path.isfile(os.path.join(dir_path, file_name)):
# 判断文件名中是否包含需要替换的字符
if old_char in file_name:
# 获取文件扩展名
ext = os.path.splitext(file_name)[1]
# 获取去除扩展名后的文件名
basename = os.path.splitext(file_name)[0]
# 替换字符
new_name = basename.replace(old_char, new_char) + ext
# 重命名文件
os.rename(os.path.join(dir_path, file_name), os.path.join(dir_path, new_name))