为了账号安全,请及时绑定邮箱和手机立即绑定

前端脚本!网站图片素材中文转英文

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

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

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

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

脚本解决的问题

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

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

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

webp

源码

import osimport reimport copyimport shutilfrom 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()



作者:木子昭
链接:https://www.jianshu.com/p/4ddf3178dd6a


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消