python文件操作脚本

1、使用opencv批量压缩图片

import cv2
import os
import time
#需要压缩的图片路径
path='test'  
#压缩后图片存放路径
result='test_result'
#dir为列表,包含path下所有的图片名
dir = os.listdir(path)
print('需要压缩的图片数为:'+str(len(dir)))
count = 1
for i in dir:
    print('正在压缩第{}张图片'.format(count),end = ',')
    start=time.time()
    img=cv2.imread(path+'/{}'.format(i))
    #用0-100的整数表示,数值越大质量越高,默认为95。 注意,cv2.IMWRITE_JPEG_QUALITY类型为Long,必须转换成int;
    #对于PNG,第三个参数表示的是压缩级别。cv2.IMWRITE_PNG_COMPRESSION,从0到9,压缩级别越高,图像尺寸越小。
    cv2.imwrite(result+'/{}'.format(i),img,[int(cv2.IMWRITE_JPEG_QUALITY), 10])
    end=time.time()
    print('压缩第{}张图片耗时{}'.format(count,end-start))
    count+=1

2、批量修改图片像素

import os
from PIL import Image
import glob

def convertjpg(jpgfile,outdir,width=300,height=225):  #300-255位修改后的图片大小
    img=Image.open(jpgfile)   
    new_img=img.resize((width,height),Image.BILINEAR)   
    new_img.save(os.path.join(outdir,os.path.basename(jpgfile)))
    
for jpgfile in glob.glob("test/*.jpg"):   #test为需要修改图片的目录
    convertjpg(jpgfile,"test_result")	#test_result为修改后图片的保存目录

3、批量修改指定目录下文件的名字

方法一:修改为类似cup1.jpg...的格式

import os

path = 'test'  #要修改的图片目录
count = 1

for i in os.listdir(ipath):
    #print(i)
    old_name = os.path.join(path, i)
    new_name = os.path.join(path, 'cup{}.jpg'.format(count))    #修改后的新名字
    count += 1
    if count >100: break
    os.rename(old_name,new_name)
    

方法2:修改为类似name_0001.jpg...的格式

import os

def formatting(count):
    strcount=str(count)
    if len(strcount)==1:
        #print('000'+strcount)
        return '000'+strcount
    elif len(strcount)==2:
       # print('00' + strcount)
        return '00'+strcount
    elif len(strcount)==3:
       # print('0' + strcount)
        return '0'+strcount
    elif len(strcount)==4:
       # print(strcount)
        return strcount

def rename():
    count=0
    path='test'

    filelist=os.listdir(path)
    for files in filelist:
        Olddir=os.path.join(path,files)#原路径
        filename=os.path.splitext(files)[0]#文件名
        filetype=os.path.splitext(files)[1]#文件扩展名
        Newdir=os.path.join(path,'name_'+formatting(count)+filetype)#新的文件路径
        os.rename(Olddir,Newdir)
        count+=1
    print('success')

rename()

4、删除指定目录下所有文件

import os

def del_file(path):
    ls = os.listdir(path)
    for i in ls:
        c_path = os.path.join(path, i)
        if os.path.isdir(c_path):
            del_file(c_path)
        else:
            os.remove(c_path)
            
            
path = 'test'  #删除test目录下所有图片
del_file(path)

5、删除指定目录下指定后缀的文件

import os
import glob

path ='test/*.jpg'  #要删除的指定目录
for infile in glob.glob(path):
     os.remove(infile)

 

发布了37 篇原创文章 · 获赞 30 · 访问量 5万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览