# 编了一个Python小程序把IDM下载后变为代码的文件夹名复原为中文

**URL:** <https://forum.freemdict.com/t/topic/709>\
**Category:** 软件经验交流展望\
**Created:** [2020 年2 月 8 日 07:11 UTC](https://forum.freemdict.com/t/topic/709 "2020-02-08T07:11:10Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

作者： ![bbsknock](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/b/85e7bf/32.png) [@bbsknock](https://forum.freemdict.com/u/bbsknock)\
发布日期： [2020 年2 月 8 日 07:11 UTC](https://forum.freemdict.com/t/topic/709/1 "2020-02-08T07:11:11Z")

</div>

万分感谢站长的付出！  
我昨天试着按照论坛里的指点，用IDM下载了一部分词典，非常成功，美中不足的就是下载后的文件目录变为了一系列乱码，例如：  
-E7-AE-80-E6-98-8E-E6-B1-89-E8-8B-B1-E8-AF-8D-E5-85-B8  
-5B-E8-8B-B1–E6-B1-89-5D-20-E6-B3-A8-E9-9F-B3-E8-8B-B1-E8-AF-AD-5B25110-5D(090523)  
于是我用Python编了一个小程序，把这些乱码重新复原为中文，效果很还行，有需要的朋友可以修改一下给自己使用：  
把程序里的path=‘’ 改为你自己硬盘下载目录就好了，注意分隔符是两个反斜线\：  
（我没有上传文件的权限，所以就贴在这里了）

```
from os import walk, rename
from urllib import parse
import re

path = 'E:\\203 freeMdict\\downloads.freemdict.com\\'

for path, dirs, files in walk(path, False):
    if len(dirs) > 0:
        for name in dirs:
            new_name = re.sub(r'(\d\d)-(\d{1,2})-(\d{1,2})', r'\1.\2.\3', name)
            new_name = new_name.replace('-', '%')
            cn = parse.unquote(new_name).replace('%', "-")
            if cn != name:
                rename(path+'\\'+name, path+'\\'+cn)

```

---

<div class="post-metadata">

作者： ![hua](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/hua/32/11090_2.png) [@hua](https://forum.freemdict.com/u/hua)\
发布日期： [2020 年2 月 8 日 07:37 UTC](https://forum.freemdict.com/t/topic/709/2 "2020-02-08T07:37:07Z")

</div>

和 windows 的区域设置里面的 语言有关，在一个小角落的设置里面。  
提一下这个python原理：`url decode`  
关键代码：`urllib.parse.unquote`

---

<div class="post-metadata">

作者： ![hua](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/hua/32/11090_2.png) [@hua](https://forum.freemdict.com/u/hua)\
发布日期： [2020 年2 月 8 日 07:37 UTC](https://forum.freemdict.com/t/topic/709/3 "2020-02-08T07:37:47Z")

</div>

需要更多像楼主这样的小伙伴~

---

<div class="post-metadata">

作者： ![hua](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/hua/32/11090_2.png) [@hua](https://forum.freemdict.com/u/hua)\
发布日期： [2020 年2 月 8 日 07:39 UTC](https://forum.freemdict.com/t/topic/709/4 "2020-02-08T07:39:19Z")

</div>

> [@bbsknock](#):
>
> 两个反斜线\

其实 斜线也可以 `/`
