@דוד-1 כתב בבקשה | רעיונות לכתיבת תוכנות:
מה שחשוב לי כן זה תגית ז'אנר. תוכל להוסיף את זה?
וכן אשמח שתוסיף אם אפשרי, שיטפל רק בטקסט שכתוב בעברית, ולא באנגלית או מספרים.
הוספתי
(גם בטקסט מעורב זה אפשרי שיהיה רק את העברית?)
כן, הוספתי, אם כי בטקסט מעורב סדר המילים באנגלית לא נשמר, וכן מילה שמורכבת מ2 השפות תתהפך.
וגם שיתמוך בעוד פורמטים של מוזיקה ולא רק MP3 , כגון FLAC וWMA
לא אפשרי בספריה שעבדתי איתה, אולי בספרייה אחרת.
import os
import eyed3
import re
def process_in_folder(folder_path):
for root, _, files in os.walk(folder_path):
for file_name in files:
if file_name.lower().endswith(".mp3"):
reverse_tag(os.path.join(root, file_name))
old_path = os.path.join(root, file_name)
new_path = os.path.join(root, is_hebrew(file_name.split(".")[0])+".mp3")
os.rename(old_path, new_path)
def is_hebrew(text):
is_heb = bool(re.search(r'[\u0590-\u05FF]+', text))
if not is_heb:
return text
else:
split_txt = text.split()
list_heb = []
for i in split_txt:
is_heb = bool(re.search(r'[\u0590-\u05FF]+', i))
if is_heb:
i = i[::-1]
list_heb.append(i)
else:
list_heb.append(i)
reverse_txt = " ".join(list_heb[::-1])
return reverse_txt
def reverse_tag(file):
audiofile = eyed3.load(file)
audiofile.tag.artist = is_hebrew(audiofile.tag._getArtist())
audiofile.tag.album = is_hebrew(audiofile.tag._getAlbum())
audiofile.tag.title = is_hebrew(audiofile.tag._getTitle())
audiofile.tag.genre = is_hebrew(str(audiofile.tag._getGenre()))
audiofile.tag.save()
folder_path = ""
process_in_folder(folder_path)