【Python】使用Python批量移动文件

【fishing-pan:https://blog.csdn.net/u013921430 转载请注明出处】

  在工作中难免会遇到需要批量整理文件的情况,当需要从一堆文件中将部分文件批量地转移时,如果手工一一转移难免浪费时间,此时我们就可以考虑用脚本来转移文件了。

  例如,李华的朋友帮他处理了一批图像,但是朋友将生成数据和原始数据放在了同一目录下,但是老师让李华把文件分别放在两个文件夹,这时候写英文作文的能力肯定是帮不了他了,他可以尝试用Python脚本来批处理。

  当然,批处理的前提条件是这两种文件在命名之间有明显区别,例如:原始数据的命名规则是:编号+_src.jpg,而输出数据的命名规则是编号+_res.jpg。又或者是原始数据为jpg格式,而输出数据保存成了png格式。根据前面的例子,可以直接上代码;代码中主要用到了osshutilglob三个库

代码

import os
import shutil
import glob

def my_move(srcfn,dstdir):                 ##定义移动函数,参数为待移动的文件路径和目标目录
    if not os.path.isfile(srcfn):          ##判断文件是否存在
        print('srcfn error')

    else:
        srcdir,fn=os.path.split(srcfn)     ##分离绝对路径和相对路径,获得文件名
        
        if not os.path.exists(dstdir):     ##如果目录不存在,创建目录
            os.makedirs(dstdir)  

        dstfn=dstdir+fn                    ##生成目录下的文件名
        shutil.move(srcfn,dstfn)           ##移动 

fns=glob.glob('H:/dataset/*.jpg')                  ##获取当前目录下所有jpg格式的文件

src_fns=[fn for fn in fns if fn[-7:-4]=='src']     ##获取当前目录下的所有原始数据,存为一个list

for ind in range(len(src_fns)):             ##循环移动所有文件

    my_move(src_fns[ind],'H:/dataset/src/')

已完。。

你可能感兴趣的:(python,工作小技巧)