Steps of creation
List elements from catalog:

import os
import time
def get_files_details(directory):
details = []
for filename in os.listdir(directory):
if filename.endswith(".txt"):
filepath = os.path.join(directory, filename)
file_size = os.path.getsize(filepath)
file_modification = time.strftime('%H:%M:%S',
time.gmtime(
os.path.getatime(filepath)
))
details.append([filename, file_size, file_modification])
return details
directory = r"C:\Users\Agnieszka\Desktop\FILE"
details = get_files_details(directory)
If we want to list songs or videos we have to install mutagen lib:
from mutagen.mp4 import MP4 #pip install mutagen
for images we will use Pillow lib:
from PIL import Image #pip install Pillow
#Enter the music catalog to get songs names
import os
from mutagen.mp4 import MP4 #pip install mutagen
import time
#SELECTING FILES FROM ONE CATALOG:
def get_music_files_details(directory):
details = []
for filename in os.listdir(directory):
if filename.endswith(".mp4"):
filepath = os.path.join(directory, filename)
file_size = os.path.getsize(filepath)
audio = MP4(filepath)
duration = time.strftime('%H:%M:%S',
time.gmtime(audio.info.length))
details.append([filename, file_size, duration])
return details
directory = r"C:\Desktop\MUSIC\BAND_NAME\ALBUM"
details = get_music_files_details(directory)
print(details)
#Enter the music catalog and read: band names, album names and songs names
import os
import pandas as pd
from mutagen.mp4 import MP4 #pip install mutagen
import time
def get_music_files_details(directory):
details = []
#LIST OF FOLDERS (BAND NAMES) IN THE SPECIFIED PATH (X:\MUSIC)
for catalog_name in os.listdir(directory):
catalog_path = os.path.join(directory, catalog_name)
#details.append(catalog_name)
#LIST OF ALBUMS FROM EACH SUBFOLDER W (X:\MUSIC):
if os.path.isdir(catalog_path):
for subcatalog_name in os.listdir(catalog_path):
subcatalog_path = os.path.join(catalog_path,
subcatalog_name)
#details.append([catalog_name,subcatalog_name])
#SONGS LIST
if os.path.isdir(subcatalog_path):
for filename in os.listdir(subcatalog_path):
if filename.endswith(".mp4"):
filepath = os.path.join(subcatalog_path,
filename)
#MB size calculation
file_size = round(
(os.path.getsize(filepath)/1048576),2)
audio = MP4(filepath)
#song duration
duration = time.strftime('%H:%M:%S',
time.gmtime(audio.info.length))
#get song name from filename '1 Band Name - Song Name.mp4':
song_name = (
filename.split(' - ')[-1].rsplit('.', 1))[0]
#lista koncowa:
details.append([catalog_name, subcatalog_name,song_name,
file_size,duration])
return details
directory = r"X:\MUSIC"
print(get_music_files_details(directory))
Export as TXT and an Excel file
def main():
directory = r"X:\MUSIC"
details = get_music_files_details(directory)
# DataFrame
df = pd.DataFrame(details,
columns=["Band", "Album", "Song",
"File Size (MB)", "Duration"])
# Excel
excel_file = "music_files_details.xlsx"
df.to_excel(excel_file, index=False)
print(f"The details of the music files "
f"have been saved in "
f"{excel_file}")
# TXT
text_file = "music_files_details.txt"
df.to_csv(text_file, index=False, sep='\t')
print(f"The details of the music files "
f"have been saved in"
f" {text_file}")
if __name__ == "__main__":
main()