没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
2页
经常会遇到下载的文件或电子书,名字中间都包含了一些网址信息,实际使用中由于名字太长不方便,下面的脚本使用正则表达式来对目录下的所有文件重命名: 例如: 修改前:[软件开发网]Mac OS X for Unix Geeks[www.jb51.net].mobi 修改后:Mac OS X for Unix Geeks.mobi python代码如下: 复制代码 代码如下: import os import re def rename_dir(dir,regex,f): if not os.path.isdir(dir) or not os.path.exists(dir) : pri
资源推荐
资源详情
资源评论
Python和和perl实现批量对目录下电子书文件重命名的代码分享实现批量对目录下电子书文件重命名的代码分享
经常会遇到下载的文件或电子书,名字中间都包含了一些网址信息,实际使用中由于名字太长不方便,下面的脚本使用正则表
达式来对目录下的所有文件重命名:
例如:
修改前:[软件开发网]Mac OS X for Unix Geeks[www.jb51.net].mobi
修改后:Mac OS X for Unix Geeks.mobi
python代码如下代码如下:
复制代码 代码如下:
import os
import re
def rename_dir(dir,regex,f):
if not os.path.isdir(dir) or not os.path.exists(dir) :
print(“The input is not one directory or not exist.”)
for root,subdirs,files in os.walk(dir):
for name in files:
oldname = name
newname = re.sub(regex,f,name)
print(“Before : ” + os.path.join(root,oldname))
print(“After : ” + os.path.join(root,newname))
if not name == newname and not os.path.exists(os.path.join(root,newname)):
os.rename(os.path.join(root,oldname),os.path.join(root,newname))
for dir in subdirs:
rename_dir(os.path.join(root,dir))
rename_dir(“C:\Python31\test”,”\[.*\](.*)\[www.jb51.net\](.*)”,lambda m:m.group(1)+m.group(2))
用用perl写了下,感觉代码也没有少写多少写了下,感觉代码也没有少写多少
复制代码 代码如下:
use strict;
use warnings;
use File::Find;
my $regex = “\[.*\](.*)\[www.jb51.net\](.*)”;
# $replace doesn’t work
my $replace = “\$1\$2”;
sub wanted {
my $name = $File::Find::name;
if( -f $name){
my $newname =$name;
$newname =~ s/$regex/$1$2/;
print “Before: $File::Find::name”;
print “After : $newname”;
if( !-e $newname) {
rename($name, $newname);
}
}
}
sub rename_dir{
my ($dir,) = @_;
if (!-d $dir || !-e $dir){
print”The input is not directory or not exist.”;
}
find(\&wanted, $dir);
}
&rename_dir(“c:\perl\test”);
perl 实现实现2
复制代码 代码如下:
use strict;
use warnings;
资源评论
weixin_38674675
- 粉丝: 3
- 资源: 920
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功