写网页的时候, 我们经常需要使用图片素材, 图片素材如果是中文名, 挂到服务器会会引发乱码, 我们需要将图片名称改为英文字符才可以使用

而起名是一个世界级难题, 为图片素材起英文名更是一件极其蛋疼的事

有些人英语不好, 直接用拼音命名, 而拼音闹出的笑话更是无法计量...

最近接手了一个项目, 图片素材全部是中文命名, 为了避开起名的困扰, 我写了一个脚本,问题迎刃而解, 这里分享给大家

脚本解决的问题

可以为中文命名的图片起一个英文名

可以批量为当前目录及其子目录下图片自动生成新的英文名

新的英文名图片会被输出到新的目录, 不会对原素材有丝毫影响

源码

import os

import re

import copy

import shutil

from googletrans import Translator

# 获取当前目录下所有的css文件路径

def getAllMd (file_dir):

all_whole_path_files = []

for root, dirs, files in os.walk(file_dir):

for file in files:

try:

if (file[-4:] == ".png") or (file[-4:] == ".jpg"):

file_info = [root+'/', file]

all_whole_path_files.append(file_info)

except Exception as e:

print(e)

return all_whole_path_files

# 将中文转换为英文

def getRepName(path_file):

# 暂时保留后缀

extension_name = ''

extension_name = path_file[1].split(".")[-1]

# 无后缀的文件名

path_file[1] = path_file[1][0:-len(extension_name)-1]

# 实例化翻译

translator = Translator()

tmp_en_name = translator.translate(path_file[1], dest='en').text

# 将数字和字母保存到最终的字符串中, 遇到空格则替换为中划线保存

en_name = ''

for en_name_str in tmp_en_name:

# 将大写字母转换为小写字母

en_name_str = en_name_str.lower()

# 保留小写字母

if re.match('[a-z]', en_name_str):

en_name += en_name_str

# 将空格转换为"-"

elif en_name_str == " ":

en_name += "-"

else:

pass

# 补充后缀名

path_file[1] = en_name + '.' + extension_name

return path_file

# 根据相对路径及新旧英文名 创建新文件

def createNewFile(whole_path_file, new_whole_path_file):

# 在图片的同级目录, 创建一个enName的文件夹

if os.path.exists(whole_path_file[0] + "./enName/"):

pass

else:

os.makedirs(whole_path_file[0]+ "./enName/")

# 拷贝创建新的文件

shutil.copyfile(whole_path_file[0]+whole_path_file[1], new_whole_path_file[0]+"./enName/"+new_whole_path_file[1])

def main():

all_whole_path_files = getAllMd('./')

for whole_path_file in all_whole_path_files:

# 获取英文名

new_whole_path_file = getRepName(copy.deepcopy(whole_path_file))

print("旧的路径和英文名:", whole_path_file, "新的路径和英文名:", new_whole_path_file)

# 根据相对路径及新旧英文名创建新文件

createNewFile(whole_path_file, new_whole_path_file)

if __name__ == '__main__':

main()

这个脚本只是解决了我的问题, 如果有新的需求, 欢迎到这个脚本对应的Github提交需求, 也欢迎点个星, https://github.com/zhaoolee/zhToEnName

文章首发于慕课网

python图片显示英文字符_Python为图片素材起个英文名相关推荐

  1. python图片显示英文字符_Python中利用Tesseract软件来识别图片中的英文与中文

    OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同的几 ...

  2. python将图片转为字符_Python将图片转化为字符画

    简介 最近发现一个有趣的操作, 将一张图片转化为字符串的模式来显示! 如图 准备 首先需要安装一个CV模块用来导入图片的#pip install opencv-python 然后明确下程序的设计思路1 ...

  3. python爬图片显示不了_Python爬取网页中的图片(搜狗图片)详解

    前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: 我们这里以sogou作为爬取的对象. 首先我们进入搜狗图片http://pic.s ...

  4. python区域找图命令_python读取图片任意范围区域

    使用python进行图片处理,现在需要读出图片的任意一块区域,并将其转化为一维数组,方便后续卷积操作的使用. 下面使用两种方法进行处理: convert 函数 from PIL import Imag ...

  5. python图像特征提取进行分割_python实现图片处理和特征提取详解

    这是一张灵异事件图...开个玩笑,这就是一张普通的图片. 毫无疑问,上面的那副图画看起来像一幅电脑背景图片.这些都归功于我的妹妹,她能够将一些看上去奇怪的东西变得十分吸引眼球.然而,我们生活在数字图片 ...

  6. python三维矩阵出图_python读取图片的方式,以及将图片以三维数组的形式输出方法...

    python 三维npy数组如何画成三维图片 画成三维图片? 你要是想要看空间分布的话画散点图就可以啊,用matplotlib 网页链接 要是那种各种弯曲的面,也是matplotlib 网页链接 再就 ...

  7. python图片修复软件下载_python 实现图片修复(可用于去水印)

    在现实的生活中,我们可能会遇到一些美好的或是珍贵的图片被噪声干扰,比如旧照片的折痕,比如镜头上的灰尘或污渍,更或者是某些我们想为我所用但有讨厌水印,那么有没有一种办法可以消除这些噪声呢? 答案是肯定的 ...

  8. python将图片原比例缩小_Python实现图片长宽比例缩放和填充

    1 ''' 2 : 一个缩略图程序, 不需要的部分可以去掉3 : 主要实现了尺寸(长宽)和大小(KB)的缩小4 ''' 5 importcv26 importos.path7 from PIL imp ...

  9. wpf 图片绝对路径引用_Python Pillow 图片处理

    安装Pillow模块方法 Windows安装 在Windows,32位和64位版本的车轮,蛋和可执行安装程序中为Windows支持的Pythons矩阵编写了Pillow二进制文件.除raqm和libi ...

最新文章

  1. PAT_B_1015_C++(25分)
  2. profile 安卓work_androidWorkProfileGeneralDeviceConfiguration 资源类型
  3. SparkHiveSQL中Join操作的谓词下推?
  4. Mybatis01(结果集封装)
  5. 2017.9.9 股票交易 思考记录
  6. Python 之 sorted()排序详解 适用于任意可迭代对象比如列表,字典等
  7. 还款压力大要不要买房?
  8. requests之json系列(一)
  9. HDU1054 Strategic Game —— 最小点覆盖 or 树形DP
  10. Linux Mysql5.6安装
  11. 最新爱客影院自动采集源码v3.5.5
  12. 奔图 Pantum P3502DN 打印机驱动
  13. 四种常见数据模型(维度模型、范式模型等)
  14. PHP中用while的用法,php while语句的用法
  15. Java下载Excel时文件名称乱码
  16. QChartView
  17. VR眼镜转接线Type-c To DP加快充(乐得瑞LDr6282)
  18. Dynamics 365 可编辑子网格的字段禁用不可编辑
  19. JS--JavaScript使用window对象操作框架集frameset中的各窗口(frames[])
  20. jpush android 离线推送,JPush极光推送3分钟搞定Android Push

热门文章

  1. 阿古斯机器人_炉石传说:圣盾巨龙后期无敌?三种快速转型打法助你稳抓圣盾流...
  2. 中国乳腺X机市场研究与未来预测报告(2022版)
  3. 数据开发如何巧妙解决业务问题
  4. Leetcode337. 盗贼问题
  5. 阿里云云盾SSL证书免费部署ECS服务器https域名访问-周鹏
  6. 利用PHPStudy创建网站
  7. wegame显示连接服务器失败,wegame登陆失败提示错误码2怎么办?wegame错误码:2解决方案...
  8. 提高工作激情的九种方法
  9. D3D 9和D3D 11绘制流水线对比
  10. Uni-app 购物车页面 获取购物车数据 全选 单选 合计 删除