打印

[求助] [完]求加减运算改名的方法

[完]求加减运算改名的方法

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 编辑 ]
查看积分策略说明

快速回复主题

选项

[完成后可按 Ctrl+Enter 发布]  预览帖子  恢复数据  清空内容

当前时区 GMT+8, 现在时间是 2024-04-20 13:18

Processed in 0.016777 second(s), 6 queries.