提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
工作中需要处理大量文件和图片。
一、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挺好用的