Kettle使用_14 文件操作复制移动删除结合JS

                        Kettle使用_14 文件操作复制移动删除结合JS

需求: 通过Kettle的组件实现文件夹下所有文件的复制和重命名。

比如:将文件名1快乐成语001【持之以恒】.mp3 重命名为001持之以恒.mp3

解决方法:结合获取文件名Javascript脚本处理文件组件解决。

注:同理我们可以对文件进行移动、删除操作,详见文末的补充部分。补充部分同时也附录了python版文件重命名代码。

Previous work:

准备数据(这里是5个mp3文件)。

 

Step1: 新建个转换。

Step2: 拖个获取文件名到转换里,该组件位于转换输入分类下。

 

Step3:配置获取文件名组件:

 

Step4:拖个Javascript组件,该组件位于转换脚本分类下。

 

Step5:SHIFT连接获取文件名Javascript组件。

Step6: 定义Javascript变量,处理重命名逻辑。

//Script here
//拷贝
var copyfile='F:\\hp2\\'+short_filename.substring(short_filename.indexOf('语')+1).replace('【','').replace('】','')
//移动
var movefile='F:\\hp2\\'+short_filename

Step7: 拖个处理文件组件, 该组件位于转换应用分类下。

 

Step8: SHIFT连接Javascript组件与处理文件组件。

Step9:配置处理文件组件:

 

Step10:运行与验证

 

 

补充:

移动场景:

 

删除场景:

Python代码示例:

def reename():
    nm = 1
    pathh = "F:\Happy"
    filelist = os.listdir(pathh)
    for files in filelist:
        Olddir = os.path.join(pathh, files)
        filename = os.path.splitext(files)[0]
        filetype = os.path.splitext(files)[1]
        if filename.find('语')>0:
            another_name=filename.replace('【','').replace('】','')
            #print(another_name[another_name.find('语')+1:])
            Newdir = os.path.join('F:\\hp2\\'+another_name[another_name.find('语')+1:] + filetype)
        else:
            Newdir = os.path.join('F:\\hp2\\' + filename + filetype)
        os.rename(Olddir, Newdir)
        nm += 1

 

猜你喜欢

转载自blog.csdn.net/shenliang1985/article/details/112901052