Изменение метаданных файлов в Python - PullRequest
4 голосов
/ 21 июня 2010

Хорошо, я искал здесь, но не нашел ничего, что указывало бы на твердый ответ.

Я пытаюсь изменить имя исполнителя, имя файла, рейтинг, жанр и т. Д. В окнах, которые отображаются при просмотре папок в «деталях».

На данный момент у меня есть файлы, которые я хочу отредактировать в списке, и я перебираю их, но, как я уже сказал, я не уверен, как изменить их для каждого файла в списке.

def Files(The_FileList):
'''Changes each files metadata'''
for each_file in The_FileList:

    #clueless here.

return The_FileList

необходимо работать с общими видеофайлами .avi / .mkv, так как я много кодирую.

Я ищу простой вариант, так как это все, что я хочу сделать.

Спасибо

Ответы [ 2 ]

6 голосов
/ 21 июня 2010

Во многих случаях (и в этом случае) метаданные зависят от типа файла. (Некоторые файловые системы предлагают свои собственные метаданные, как это делают NTFS и более поздние версии, но эти конкретные метаданные поступают из самого файла, а не из файловой системы).

Чтобы изменить метаданные в указанных файлах, вы , вероятно, можете использовать библиотеку Mutagen (при условии, что это mp3 / aac / flac / vorbis / etc. другие аудиоформаты с другим форматом метаданных).

1 голос
/ 22 января 2019

Мутаген актуализирован.

Я оставляю пример для изменения 3 атрибутов всех файлов в каталоге:

import mutagen
from mutagen.mp4 import MP4
from os import scandir

ruta = './'
l_archivos = sorted([archivo.name for archivo in scandir(ruta) if archivo.is_file()])

mutagen.File(l_archivos[1])      # U: See the tags of the data

def edit_Media_Data():

    for f in range(len(l_archivos[:-1])):                 # A: A range of all the fields exept the script
        file = MP4(l_archivos[f])                         # A: Capture the file to edit
        file['©nam'] = l_archivos[f].replace('.mp4','')   # U: Take the file name and makeit the tittle
        file['©ART'] = 'Hector_Costa_Guzman'              # U: Edit the Autor
        file['©alb'] = 'Curso_Django'                     # U: Edit the Album
        file.pprint()
        file.save()  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...