Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python重命名媒体文件_Python_Media_Id3 - Fatal编程技术网

Python重命名媒体文件

Python重命名媒体文件,python,media,id3,Python,Media,Id3,我使用ID3库将我的文件重命名为包含歌曲标题的数据标记,以删除文件名中的数字和其他垃圾。有一段时间没有使用python了。不管是谁,我很确定这是代码,但我没有得到任何输出,我的文件也没有更改名称 def rename(): location = "/media/martinstone/6EA41336A412FFEF/Users/Martin7/Desktop/Music/" for files in os.walk(location):

我使用ID3库将我的文件重命名为包含歌曲标题的数据标记,以删除文件名中的数字和其他垃圾。有一段时间没有使用python了。不管是谁,我很确定这是代码,但我没有得到任何输出,我的文件也没有更改名称

def rename():
        location = "/media/martinstone/6EA41336A412FFEF/Users/Martin7/Desktop/Music/"
        for files in os.walk(location):
                for mfiles in files[2]:
                        if ".mp3" in mfiles:
                                path = location + mfiles
                                id3info = ID3(path)
                                os.rename(path, id3info['TITLE'])
                                print id3info['TITLE']
rename()

这将重命名
location
指定目录中以
.mp3
结尾的所有文件及其所有子目录

import os


def rename_mp3_files(location):
    for root, dirs, files in os.walk(location):
        for m_file in files:
            if m_file.endswith('.mp3'):
                old_filepath = os.path.join(root, m_file)
                id3info = ID3(old_filepath)

                new_filename = '{}.mp3'.format(id3info['TITLE'])
                new_filepath = os.path.join(root, new_filename)

                os.rename(old_filepath, new_filepath)

                print id3info['TITLE']


location = "/media/martinstone/6EA41336A412FFEF/Users/Martin7/Desktop/Music/"
rename_mp3_files(location)

仅供参考,有一些工具可以帮你做到这一点。这并不是为了阻止您自己编写代码,只是为了防止您不知道:)。

您可以使用
songdestails
Python包来完成此工作。它的依赖性

这个脚本应该可以完成这项工作

import os, songdetails

location = r'/Users/Mo/Music'
os.chdir(location)

for root, dirs, files in os.walk(location):
    for mp3s in files:
        if mp3s.endswith('.mp3'):
            song = songdetails.scan(mp3s)
            song_name="{}.mp3".format(song.title)
            print ("{} will be renamed to {} ".format (mp3s,song.title))
            os.rename(mp3s, song_name)

干杯。

为什么不试着打印文件列表呢?另外,根据您的操作系统,位置可能是一个相对URL,因此您需要对照您的工作目录进行检查。它看起来像是安装在Linux上的Windows驱动器,并且是一个绝对路径。我已使用解释器控制台仔细检查了该路径,以确保它正在打印以.mp3结尾的文件。问题出在之后的代码中