import os
import pytesseract
from PIL import Image #pip install pillow
import re
bb=r'E:\scan\aaaa' #先找存放PDF的目录
aa=os.listdir(bb) #再列出目录下的所有文件
cc=r'E:\scan\bbbb' #存放图片的目录、图片不能跟PDF在同一个目录下、会报错
qq=os.listdir(cc)
n=1
for png_name in qq:
png_path=os.path.join(cc,png_name)
png_ocr=pytesseract.image_to_string(Image.open(png_path),lang='chi_sim') #识别图片目录下的每一张图片
png_name_replace = re.sub('\s', '', png_ocr)
re_po = re.findall('.申请用途', png_name_replace) #很重要、这个是查找几百张照片中唯一出现的字眼、才能执行下面的代码
if re_po == []:
print('没有采购申请单')
pass
if re_po == None:
print('有数据、但是没有采集到')
pass
if re_po:
str_select = re.findall('单据编号:(.*?)单据日期', png_name_replace) #正则匹配中间的编号
ocr_name = str(str_select)[2:19]
png_name1,png_name2,png_name3 = png_name.partition('.') #文件名以点号为分隔、分3个名称、分别赋值给变量1.2.3
for pdf_name in aa:
pdf_path=os.path.join(bb,pdf_name)
pdf_name1,pdf_name2,pdf_name3=pdf_name.partition('.')
if png_name1==pdf_name1:
new_name = os.path.join(bb, ocr_name)
os.rename(pdf_path,f'{new_name}.pdf')
'''
删除文件夹下面的所有文件(只删除文件,不删除文件夹)
python删除文件的方法 os.remove(path)path指的是文件的绝对路径,如:
'''
def del_file(path_data):
for 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)
if __name__ == '__main__':
del_file(cc)
python批量识别图片并根据内容重命名
最新推荐文章于 2025-05-15 08:02:11 发布