记录几个python处理图片文件小公举

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

 

文章目录

 


前言

工作中需要处理大量文件和图片。

一、python小公举

1. 修改文件名

import os
import re
"""批量修改文件夹的图片名"""
def ReFileName(dirPath,pattern):
    """
    :param dirPath: 文件夹路径
    :pattern:正则

    :return:
    """
    # 对目录下的文件进行遍历
    i = 1
    for file in os.listdir(dirPath):
        # 判断是否是文件
        
        if os.path.isfile(os.path.join(dirPath, file)) == True:
           #c= os.path.basename(file)
           newName = re.sub(pattern, str(i)+'.jpg',' ')
           #newName = re.sub(pattern, str(i)+'.png', file)
           newFilename = file.replace(file, newName)
           # 重命名
           os.rename(os.path.join(dirPath, file), os.path.join(dirPath, newFilename))
           i+=1
    print("图片名已全部修改成功")

if __name__ == '__main__':

    dirPath = r"D:\image\黑底 - 截图" #需要处理的文件夹
    pattern = re.compile(r'.')
    ReFileName(dirPath,pattern)

 

2.删除文件

代码如下(示例)

#删除文件夹下面的所有文件(只删除文件,不删除文件夹)
import os
import shutil
#python删除文件的方法 os.remove(path)path指的是文件的绝对路径,如:
# os.remove(r"E:\code\practice\data\1.py")#删除文件
# os.rmdir(r"E:\code\practice\data\2")#删除文件夹(只能删除空文件夹)
# shutil.rmtree(r"E:\code\practice\data\2")#删除文件夹
# path_data = "E:\code\practice\data"#
def del_file(path_data):#删除偶数索引的文件
    for v,i in enumerate(os.listdir(path_data)) :# os.listdir(path_data)#返回一个列表,里面是当前目录下面的所有东西的相对路径
        file_data = path_data + "\\" + i#当前文件夹的下面的所有东西的绝对路径
        if os.path.isfile(file_data) == True:#os.path.isfile判断是否为文件,如果是文件,就删除.如果是文件夹.递归给del_file.
            if (v % 2) == 0:
                os.remove(file_data)
                print(v,i)
        else:
            del_file(file_data)

def del_allfile(path_data):删除所有文件
    for v,i in os.listdir(path_data) :# os.listdir(path_data)#返回一个列表,里面是当前目录下面的所有东西的相对路径
        file_data = path_data + "\\" + i#当前文件夹的下面的所有东西的绝对路径
        if os.path.isfile(file_data) == True:#os.path.isfile判断是否为文件,如果是文件,就删除.如果是文件夹.递归给del_file.
            os.remove(file_data)
        else:
            del_file(file_data)            
path_data = r"D:\image\ImageCapture\2019-01-08"
del_file(path_data)
#del_allfile(path_data)

3.批量截图

from PIL import Image
import os
import os.path
import numpy as np
import cv2
#指明被遍历的文件夹
rootdir = r'D:\image\red'
for parent, dirnames, filenames in os.walk(rootdir):#遍历每一张图片
    for filename in filenames:
        currentPath = os.path.join(parent, filename)  
        img = Image.open(currentPath)
        print (img.format, img.size, img.mode)
        #img.show()
        box1 = (0, 20, img.size[0], img.size[1])#设置左、上、右、下的像素,
        image1 = img.crop(box1) # 图像裁剪
        image1 = image1.convert('RGB')
        image1.save(r"D:\image\reds"+'\\'+filename) #存储裁剪得到的图像

总结


没啥说的 python挺好用的

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值