python文件命名小脚本

写个文件命名的python程序,复(yu)习一下python。
程序写得应该不是很好。。

import os;
import shutil;
from PIL import Image;
##输入为图片路径
##命名方式为统一位数数字递增
##单一文件格式查找
##输出为:
##  result.txt 文件名,是否为完整图片
##  \full 完整图片库
##  \part 不完整图片库


path="D:\mydatabase";#设置工作目录
os.chdir(path)#更改工作目录
f=open("result.txt","w");#打开输出到的txt文件
def rename(begin,weishu):#批量重命名,begin:起始数。weishu:数字位数
    count=begin;
    filelist=os.listdir(path)#该文件夹下所有的文件(包括文件夹)
    for files in filelist:#遍历所有文件
        Olddir=os.path.join(path,files);#原来的文件路径
        addstr="";#补增0
        if os.path.isdir(Olddir):#如果是文件夹则跳过
            continue;
        addwei=weishu-len(str(count));#计算需要填多少0
        for i in range(addwei):
            addstr+="0";#增加到所需位数
        filename=os.path.splitext(files)[0];#文件名
        filetype=os.path.splitext(files)[1];#文件扩展名
        if filetype!=".jpg":#如果不为jpg文件则跳过
            continue;
        string=str(count);#将计数值转为字符
        newfilename=addstr+string+filetype;#合成最终文件名
        f.write(newfilename+" ");#输出文件名到文件
        Newdir=os.path.join(path,newfilename);#新的文件路径
        os.rename(Olddir,Newdir);#重命名
        classify(newfilename)#进行分类操作
        count+=1;#计数加一
        print(newfilename);#打印当前处理文件名   
    f.close();


def classify(filename):#分类函数,filename:所需分类文件名
    img = Image.open(filename)#打开所要分类的图片
    imgsize=img.size;#图像大小
    full=1;#是否完整,1为完整
    w=imgsize[0];
    h=imgsize[1];
    rate=float(w)/float(h);#长宽比
    if rate<0.67 or rate>1.5 or w<200 or h<200:
        full=0;
    if full:
        if not os.path.isdir("full"):#是否存在full目录
            os.mkdir("full");#新建full目录
        Newdir0=os.path.join(path+"\\full",filename);
        shutil.copyfile(filename,Newdir0);#复制文件
        f.write("1"+"\n");#输出是否完整标记
    else:
        if not os.path.isdir("part"):#是否存在part目录
            os.mkdir("part");#新建part目录
        Newdir0=os.path.join(path+"\\part",filename);
        shutil.copyfile(filename,Newdir0);#复制文件
        f.write("0"+"\n");#输出是否完整标记

rename(0,6);#运行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值