读取含中文路径的文件夹里面的图片并改名

import os
import cv2
import numpy as np
import pypinyin

# 读去的文件夹的格式:
# 1.主文件夹-----爆点对比数据1115
# 2.一级文件夹-----文件夹
# 3.图片名称

file_dir = 'E:/3/000000'  # 你的文件路径

def hp(word):
    s = ''
    for i in pypinyin.pinyin(word, style=pypinyin.NORMAL):
        s += ''.join(i)
    return s



# 获取文件夹名称
for root, dirs, files in os.walk(file_dir):                       # 获取一级目录下的文件名称
    # print('root_dir:', root)        # 当前路径
    # print('sub_dirs:', dirs)        # 子文件夹
    # print('files:', files)          # 文件名称,返回list类型
    for x in dirs:
        paths1 = file_dir + '/' + x

        for root, dirs, files in os.walk(paths1):                     # 获取二级目录下的文件名称

            for x in dirs:
                paths2 = paths1 + '/' + x

                for root, dirs, files in os.walk(paths2):                      # 获取三级目录下的文件名称

                    for x in dirs:
                        paths3 = paths2 + '/' + x

                        for root, dirs, files in os.walk(paths3):                      # 获取四级目录下的文件名称

                            for x in dirs:
                                paths = paths3 + '/' + x

                        # 获取文件的里面 “bmp” 文件名称
                                for _, _, name in os.walk(paths):
                                    for y in name:
                                        if 'tiff' in y:
                                            path1 = paths + '/' + y
                                            cv_img = cv2.imdecode(np.fromfile(path1, dtype=np.uint8), -1)

                        # 定义保存图片路径和图片名称
                                            newPath = 'E:/3Dmoxing/1116-1-bu/' + hp(path1.split('/')[-5]) + '_' + hp(path1.split('/')[-4]) \
                                                      + '_' + hp(path1.split('/')[-3]) + '_' + \
                                                      hp(path1.split('/')[-2]) + '_' + path1.split('/')[-1]


                                            cv2.imencode('.tiff', cv_img)[1].tofile(newPath)

你可能感兴趣的:(python,开发语言)