标题: [求助] [完]求加减运算改名的方法 [打印本页]
作者: 646757417 时间: 2012-07-27 15:01 标题: [完]求加减运算改名的方法
A0_00-00000_x134y22.png
A2_00-00100_x343y141.png
A2_01-00101_x338y130.png
A0_02-00102_x338y124.png
B0_01-00200_x336y125.png
就是这样的一组文件名,我想要的是第二个开始后面的xy去减去第一个的xy,然后改文件名。
像这样:A2_00-00100_x343y141.png
343-134=209 141-22=119
然后文件名改成
A2_00-00100_x209y119.png
如果没方法支持全部文件,那么希望支持B0_01-00200_x336y125.png这个文件的更改。
PS:前面5个字符(如A2_01)是变化的,后面的00200才是固定的
想到了这个,不过问题是没法批量化,当参考好了
A0_00-00000_x134y22.png A0_00-00200_x336y125.png
set w=336-134
set /a x=%w%
set h=125-22
set /a y=%h%
ren A0_00-00200_x336y125.png A0_00-00200_x%x%y%y%.png
KF fe.asvel的复制内容到剪贴板
代码:
import os
import sys
import re
for dir in sys.argv[1:]:
filenames = os.listdir(dir)
filenames.sort(key=lambda s: s[6:])
pattern = re.compile('(.{12}x)(\d*)(y)(\d*)(.*)');
xy = [int(x) for x in pattern.match(filenames.pop(0)).group(2, 4)]
for x in filenames:
groups = list(pattern.match(x).groups())
groups[1] = str(int(groups[1]) - xy[0])
groups[3] = str(int(groups[3]) - xy[1])
os.rename(os.path.join(dir, x), os.path.join(dir, "".join(groups)))
[ 本帖最后由 646757417 于 2012-07-27 16:55 编辑 ]
欢迎光临 YUKI 飛雪之城 (https://yukict.com/bbs/) |
Powered by Discuz! 6.0.0 |