喜马拉雅下载歌曲后,在下载目录里找到歌曲,发现名字都是有数字组成,并不是真实的歌曲名。。后发现同一目录下有相同名称开头的list.json文件。。打开后发现,真实名字保存在这个文件里。于是用python写了个小脚本,来修改名字


下载目录里,有16155903 的文件夹,也有一个16155903list.json
此脚本,编译成了win10 64位可以直接使用的小工具,在文章末尾会有链接。
打开此工具后显示此窗口


点击 路径选择,,选择到 如上的 16155903 目录

注意,16155903list.json文件必须跟16155903这个文件在同意目录下

这是修改前的,此目录里的歌曲
选择此目录后,点击 开始重命名 按钮]

[已转换完成](

这是转换完成后的歌曲目录

此工具并未完全认真测试。可能会有错误。现在工具可以提示一种错误,找不到文件夹,,此为,json文件里保存的文件,在所选下载目录里找不到。
此种错误,最简单的解决办法为,重新下载歌曲
下面是源码,有python基础的,可以直接使用

#!/usr/bin/env pythonimport time
#import llx
import os,json
import tkinter as tk
from tkinter.filedialog import askdirectory
#import threadingdef jsonduiying(path):path=path.replace('/','\\')gequming=path.split('\\')[-1]#获得文件名lujing=os.path.abspath(os.path.dirname(path))#获得文件所在的上级目录filename=f"{lujing}\{gequming}list.json"filename_list=os.listdir(path)#print(lujing)#print(filename_list)f_obj=open(filename,'r',encoding='UTF-8')numbers=json.load(f_obj)haha={}##把json文件里的歌曲名和id写入字典hahatable="".maketrans(",。【】()《》",",.[]()--")table2="".maketrans(r'\/:*?"<>|','         ')for i in numbers:j=i['title']        j=j.translate(table)#把中文字符换成英文字符j=j.translate(table2)#把命名里不能含有的字符替换为空格j=j.replace(' ','')#把空格去掉haha[f"{i['trackId']}.m4a"]=jfor key in haha:a=1b=""c=0used_name=f"{path}\{key}"while a:try:new_name=f"{path}\{haha[key]}{b}.m4a"os.rename(used_name,new_name)except FileNotFoundError:return 0except FileExistsError:b=b+str(c)c+=1else:a=0#print(f"文件{used_name}更改为{new_name}")  return 1
root=tk.Tk()
root.title("喜马拉雅歌曲名称对应修改器")
path=tk.StringVar()
zhuanZT=tk.StringVar()
pathd=''
def selectPath():global path,pathdpathd=askdirectory()print(pathd)path.set(pathd)
def zhuanhuan(aa):global zhuanZT#zhuanZT.set("开始转换...请稍后...")#time.sleep(2)if jsonduiying(aa)==0:zhuanZT.set("转换出错,找不到文件")else:zhuanZT.set("转换完成")
#path.set("ag")
#print(path)
tk.Label(root,text = "歌曲路径:").grid(row = 0, column = 0)
tk.Entry(root, textvariable = path,width=40).grid(row = 0, column = 1)
tk.Button(root, text = "路径选择", command = selectPath).grid(row = 0, column = 2)
tk.Button(root, text = "开始重命名", command = lambda :zhuanhuan(pathd),bg='red',fg='yellow').grid(row = 1, column = 2)
tk.Label(root,text = "转换状态:").grid(row = 1, column = 0)
tk.Label(root,textvariable = zhuanZT,width=40).grid(row = 1, column = 1)
if __name__=='__main__':root.mainloop() `

用pyinstaller 打包后的文件链接。。这个可以直接在windows10 64位系统使用
下载地址

喜马拉雅下载文件名批量修改相关推荐

  1. c语言;文件名批量修改要求可以修改整个文件内文件名或后缀名自动,Python批量修改文件名...

    处理语料库时,有些文件名字很不规则,为了方便处理,同义按数字顺序修改名称,主要是用到os模块: import os def RenameFiles(srcdir): #将目录下所有的文件命名为数字开头 ...

  2. java修改服务器文件名,批量修改文件名 java代码

    批量修改文件名 java代码 [2021-02-03 13:40:55]  简介: php实现批量修改文件名称的方法:首先使用函数[rename]实现,代码为[$path = pathinfo($cu ...

  3. c语言;文件名批量修改要求可以修改整个文件内文件名或后缀名自动,ubuntu批量修改文件名字(换动画资源必用)...

    Ubuntu 16.04 批量改文件名 在Ubuntu16.04下给文件批量改名可以使用rename命令. MATLAB中批量修改文件的名字 在运行matlab时有时需要用统一的文件格式,这个时候对文 ...

  4. iOS --- DIY文件名批量修改

    批量修改文件名: 1 // 1.创建文件管理 2 NSFileManager *filemanager =[NSFileManager defaultManager]; 3 // 2. 获得所有文件夹 ...

  5. 怎样更改计算机文件名,电脑如何批量修改文件名|批量修改文件名的几个小方法...

    遇到多文件,需要重命名的时候,有些人就头疼了,几百个文件,要是全部都要重命名,要弄到什么时候?虽然说,可以借助第三方的工具,但是有些使用win10的用户觉得麻烦,那还有什么其他方法?这篇文章就是系统吧 ...

  6. python 文件名批量修改、重命名

    该脚本用于文件名的批量修改.重命名 # -*- coding: utf-8 -*- import os from os import listdirdef main():gt_path = 'C:\\ ...

  7. python怎样批量修改文件大小_python:批量修改文件名批量修改图片尺寸

    功能:批量修改图片尺寸 图像的几何变换,如缩放.旋转和翻转等,在图像处理中扮演着重要的角色,python中的Image类分别提供了这些操作的接口函数,下面进行逐一介绍. 1.图像的缩放 图像的缩放使用 ...

  8. linux让数值依次递增的快捷键,如何将文件名批量修改成上一级文件夹的名字。如:A(文件夹名)-01这样依次递增?...

    不清楚你的实际文件/情况,仅以问题中的样例/说明为据 复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行 cls @echo off rem 将多个文件夹里的文件以所在文件 ...

  9. 怎样批量修改成不同的文件名?

    怎样批量修改成不同的文件名?工作中我们经常需要批量修改大量文件的名称,相信大家都很熟悉,如果你没有特殊要求,就可以使用最普通的方法进行批量修改,选中所有文件,然后右击鼠标选择"重命名&quo ...

  10. matlab 从 excel读取 日期_MATLAB批量修改文件名和选择性复制/剪切文件

    今天解决的问题: 1.如何利用MATLAB批量修改文件名? (前面写过一次bat命令法,这个应该也算一次改进,程序的初衷是想将Smartsolo导出的文件名批量修改为以炮点桩号为文件名) 2.如何利用 ...

最新文章

  1. ps aux参数说明
  2. python-leepcode-作用解析 - 5-27
  3. 叶明哲 | 数据中心空调那点事
  4. VTK:InfoVis之SCurveSpline
  5. SAP Spartacus里解析route参数的逻辑
  6. PostgreSQL 12系统表(1)pg_class
  7. Chrome插件分享—不定期更新
  8. html影院选座模板,jQuery实现影院选座订座效果
  9. 宋宝华:为了不忘却的纪念,评Linux 5.13内核
  10. KnockOutJS入门
  11. 《如何成为一个会学习的人》
  12. 思维导图编辑最常用的几种Edraw Max(亿图)快捷键
  13. FiddlerScript实现对QQ空间账号密码获取
  14. (适合小白)利用百度AI开放平台实现人脸检测,对比和搜索。
  15. 使用Python合并Excel文件
  16. 戴尔笔记本提示“您已插入低瓦数电源适配器 在bios设置中可以禁用此警告”
  17. 智慧高速建设的探索与思考【附PPT】
  18. ThinkPHP6 API接管异常
  19. PWorld2016大会演讲PPT+访谈视频大合集,总有一款是你在找的!
  20. 直接解决OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.OMP:

热门文章

  1. 基于Android平台的三维实时全景地图设计与实现(一)
  2. Proteus8.6 软件下载
  3. 不想用收费版微软OFFICE和企业版金山WPS,猿大师办公助手支持哪个版本呢?
  4. Python 支付宝转账到银行卡二维码制作步骤分享
  5. ccna视频教程 红头发讲解
  6. 卡巴斯基终生免费使用方法
  7. 古董电脑室:2019日记簿(一)
  8. mysql的学生信息建表语句_SQL语句创建学生信息数据库表的示例
  9. 光域网(IES)在Unity3d中的应用【2020】
  10. android+号码归属地数据库,Android手机号码归属地的查询