Python简体中文转繁体中文的小脚本

0.背景

整理东西时,发现了尘封多年的psp,随之想重温FC。。。。。。(省略一万字,哈哈),总之就是需要把文件夹内的所有文件的文件名换成繁体的。由于文件数量较大,这就让我想到了,繁琐重复的操作都可以交给代码来搞,所以,我就用刚刚了解的Python来解决。

1.调研

凭着我对代码的直觉,我觉得绝对可以完成。

  1. 调研Python简体转换繁体的可行性
  2. Python的os操作(这块我不是很熟)

PS.本以为是个小项目,其实是个小脚本而已,还是实战能力弱呀。

2.环境

  • Python 3.6.2(32位)

  • Windows 7(64位)

  • PyCharm 2017.2(64位)

3.设计分析

3.1 设计步骤:

①. 获取文件名

②. 文件名转换繁体(重点)

③. 重命名

3.2 分析

其中不能轻松操作的是第二点②文件名转换繁体,问度娘,还是有很多小伙伴玩过这个的,我只需要简体转繁体的功能。利用nstools项目里的两个文件即可。

nstools项目:https://github.com/csdz/nstools

  1. 下载中文简体和繁体转换所需Python库zh_wiki.py 和 langconv.py
    zh_wiki.py:https://github.com/csdz/nstools/blob/master/zhtools/zh_wiki.py
    langconv.py:https://github.com/csdz/nstools/blob/master/zhtools/langconv.py
    下载文件方式:先下载nstools项目,再在项目文件里复制出这两个文件出来即可;
  2. 将下载的 langconv.py 和 zh_wiki.py,放在Python脚本所在目录即可使用。

4.脚本源码

# -*- coding: utf8 -*-
# Created by Y.W. on 2017/10/15 21:20.

from langconv import *
import os

"""
目的:更换FC游戏的名称(简体)为繁体中文
步骤:
    1.先获取文件名
    2.简体转换繁体
    3.重命名
"""

path = "F:/迅雷下载/PSP模拟FC游戏大合集/FC-NES/300个HACK包 - 繁体"


def simple2tradition(line):
    # 将简体名字转换成繁体
    line = Converter('zh-hant').convert(line)
    # 报错才注释掉
    # line = Converter('zh-hant').convert(line.encode('utf-8'))
    # line = line.encode('utf-8')
    return line


if __name__ == '__main__':
    for file in os.listdir(path):
        # 获取文件名,name包括文件名和后缀名
        name = os.path.splitext(file)
        # 获取转换后文件名的繁体
        new_name = simple2tradition(name[0])
        # 重命名,繁体文件名+原后缀名
        os.rename(os.path.join(path, file), os.path.join(path, str(new_name) + name[1]))
    print("success!")

5.踩坑

5.1 转换方法的报错信息:

运行转换方法报错

初步度娘是编码问题,不需要经过encode转换,改之。

Python简体中文转繁体中文的小脚本_第1张图片
改动

红框框为注释掉的,改成了红框框上面那一行就行。

5.2 思维上的坑

思考不全面,本想着每个步骤都封装成单个方法,再在主方法里调用。可是后来经过卡壳发现,这一次脚本是一个遍历过程,主方法写起来也就4行而已,实战经验不足。

6.参考资料

  1. http://blog.csdn.net/tab_space/article/details/50823073
  2. http://blog.csdn.net/thomashtq/article/details/41512359
  3. http://www.runoob.com/python3/python3-os-file-methods.html
  4. http://www.jb51.net/article/62953.htm

你可能感兴趣的:(Python简体中文转繁体中文的小脚本)