(下面的程序和代码已经开源至gitee:zhenglei0410/mp3comp,可直接下载发行版使用,csdn下载地址:https://download.youkuaiyun.com/download/forgetzl/89397874 ,用方法见下面!)
音乐网站只有mp3试听没有下载该咋办?
这能难倒咱这深耕多年的码农?
看我随手就是一发代码:
import sys
import datetime
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QVBoxLayout, QWidget, QMessageBox
from PyQt5.QtCore import Qt, QMimeData
from PyQt5.QtGui import QDragEnterEvent, QDropEvent
# 音频文件合并功能
def combine_files(file_names):
# 获取当前时间并格式化为字符串
current_time = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
output_name = f'combined_audio_{current_time}.mp3'
with open(output_name, 'wb') as combined_file:
for file_name in sorted(file_names): # 按文件名排序
with open(file_name, 'rb') as f:
combined_file.write(f.read())
return f"音频文件已按顺序合并到 {output_name}。"
# 主窗口
class AudioCombinerWindow(QMainWindow):
def __init__(self):
super().__init__()
# 窗口属性
self.setWindowTitle('音频文件合并工具')
self.setGeometry(100, 100, 400, 200)
# 布局和控件
layout = QVBoxLayout()
label = QLabel('将音频文件拖拽到此处进行合并')
layout.addWidget(label)
# 设置中央控件
central_widget = QWidget()
central_widget.setLayout(layout)
self.setCentralWidget(central_widget)
# 使窗口能够接收拖拽事件
self.setAcceptDrops(True)
def dragEnterEvent(self, event):
if event.mimeData().hasUrls:
event.accept()
else:
event.ignore()
def dropEvent(self, event):
file_names = [url.toLocalFile() for url in event.mimeData().urls()]
result_message = combine_files(file_names)
QMessageBox.information(self, '完成', result_message)
# 程序入口
if __name__ == '__main__':
app = QApplication(sys.argv)
window = AudioCombinerWindow()
window.show()
sys.exit(app.exec_())
怎么用呢?
首先打开谷歌浏览器,访问chrome://version/
打开 文件资源管理器,访问个人资料路径,一般是在上图的红框中(需要将admin替换为你的用户名),然后打开子文件夹 Cache:
再进入Cache_Data:
按照修改日期倒序排序(点击【修改日期】):
现在可以打开一首可以试听的歌:
然后会看到【文件资源管理器】中会有类似这样的文件出现:
文件特点:1、文件名是连续的,2、一般来说,前几个文件大小相同,最后一个文件稍小。3、文件的修改日期都一样。
把文件拖拽到打开的程序界面:
得到合并成功的提示后,即可到程序目录下收听了:
mp3的tag也有: