歌手歌曲名批量交换

该程序使用Python的os和shutil库处理文件,结合tqdm进行进度显示,旨在解决歌曲下载后歌手名与歌曲名位置不正确的问题。它遍历指定文件夹中的音频文件(如mp3,aac,wma,flac),按特定格式重新命名并复制到目标文件夹。
摘要由CSDN通过智能技术生成

今日下载歌曲,因歌手名与歌曲名位置不合我意,百度无果,遂作此程序。

import os
import shutil  # 提供文件的复制、移动
from tqdm import tqdm
#定义来源文件夹
path_src = r'E:\\KwDownload\\Temp\\highquality'
#定义目标文件夹
path_dst = r'E:\\KwDownload\\Temp\\renamed'
for dir in tqdm(os.listdir(path_src)):
    try:
        filedir = os.path.join(path_src,dir)
        filename = dir
        后缀名 = dir.split('.')[1]
        if 后缀名 not in ('mp3','aac','wma','flac'):
            print('后缀名违法')
            print(filename)
            break
        歌手名 = dir.split('.')[0].split('-')[0]
        歌名 = dir.split('.')[0].split('-')[1:]
        newdir = os.path.join(path_dst, '-'.join(歌名)+'-'+歌手名+'.'+后缀名)
        shutil.copy(filedir,newdir)
    except:
        pass

初来乍到,定有bug,诸位见谅,如有高见,欢迎探讨。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你可以尝试将代码修改为以下内容: ```python import csv import requests from lxml import etree url = 'https://y.qq.com/n/ryqq/toplist/4' headers = { 'User-Agen': '37.36 Edg/112.0.1722.48Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/5' } response = requests.get(url, headers=headers) data = response.text with open('.\webpage\qqyyue.html', 'w', encoding='utf-8') as writer: writer.write(data) if data: html = etree.HTML(data) song_list = html.xpath('//div[@class="songlist__item"]') songs = [] if song_list: for song in song_list: name = song.xpath('.//div[@class="songlist__songname"]/a/@title')[0] artist = song.xpath('.//div[@class="songlist__artist"]/a/@title')[0] songs.append([name, artist]) with open('.\content\ohbbs.csv', 'w', newline='') as writer: f_csv = csv.writer(writer) f_csv.writerow(['歌曲名', '歌手']) f_csv.writerows(songs) print('数据保存完毕!') else: print('没有获取内容') ``` 这段代码主要做了以下几个修改: 1. 将类名为 "entry-wrapper" 改为 "songlist__item",因为页面中歌曲信息的包裹元素的类名为 "songlist__item"; 2. 修改了歌曲名歌手的提取方式,使用了更为精确的 XPath 表达式; 3. 修改了最终输出的 CSV 文件内容,只保存歌曲名歌手信息。 请注意,由于代码执行的环境和网络环境等可能存在差异,以上修改并不能保证一定能够解决你的问题,但是应该可以参考一下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值