Sikulix编译脚本 批量重命名 百度网盘文件
目录
之前一直做搬运工了,导致百度盘特别乱,而网盘却没有这功能,只能自己想 办法解决。通过Sikulix编写脚本,对百度网盘Windows客户端可视化编程, 实现批量命名。
Sikulix
SikuliX通过定位图像和键盘鼠标来操作GUI(图形化用户界面),能很好的实现flash和桌面类应用的自动化。本文基于此背景上进行开发,达到自动命名的目的。
功能说明
注意:本文命名的规则:将文件名中不想要的字符过滤掉 。其他规则,需要单独实现。。
代码块
代码块语法遵循标准markdown代码,例如:
#批量重命名 silulix脚本
reload(sys)
sys.setdefaultencoding('utf8')
lineCount= 35 #行数
panTitle=find("1516632319458.png")#度盘标题栏
panTitleX=panTitle.x
panTitleY=panTitle.y
PAN_TITLE_HEIGHT=25 #度盘标题栏高度
PAN_LIST_ITEM_HEIGHT=23#度盘每条数据的高度
CHECKBOX_MARGIN_LEFT=15#选择框左侧间距
CHECKBOX_WIDTH=15#选择框宽度
CHECKBOX_HEIGHT=15#复选框高度
index=0
MAX_LINE_NUMBER=17#当前度盘能显示的最大条数
needCancel=False #Key.DOWN 会顺便选择下一行 为保护循环 下次循环时再次点击取消掉
filterSet={
u"新建",u"文本"} #文件名过滤集合
for line in range(lineCount):
clickY=PAN_TITLE_HEIGHT+PAN_LIST_ITEM_HEIGHT*index+panTitleY
clickRegin=Region(panTitleX+CHECKBOX_MARGIN_LEFT,clickY,CHECKBOX_WIDTH,CHECKBOX_HEIGHT)
print " index is"+str(index)
if needCancel:
click(clickRegin)#去除Down带来的选中
needCancel = False
click(clickRegin)
time.sleep(0.5)
type(Key.F2)
type('c', Key.CTRL)
fileBase= App.getClipboard()
#命名算法 begin
for word in filterSet:
fileBase = fileBase.replace(word,u"") #此处仅去掉不想要的字符 其他自行处理
#命名算法 end
print fileBase
paste(fileBase)
type(Key.ENTER)
click(clickRegin)
time.sleep(0.5)
if index >= MAX_LINE_NUMBER:
click(clickRegin)
type(Key.DOWN) #DOWN ↓ 在百度盘客户端的中移动2行
needCancel=True
time.sleep(0.5)
index = index -1 #下移2行后 索引上移1行
else:
index = index +1