Sınırlı hafızaya rastgele müzik seçimi
Benim şirin bir mp3çalarım var fakat 1GB hafızaya sahip. Sık sık dinlediğim albümler var ama bazen değişik şeyler dinleyeyim istiyorum. Radyosu olmadığı için, müzik arşivimde dolaşıp şarkılar seçiyorum ve mp3çalara atıyorum. Bu işlemi elle yapmaktan sıkıldım, tüm şarkıları atacak yeterli hafıza da yok. Ben de Python ile bir klasörden rastgele mp3 dosyaları seçip başka klasöre atayım istedim ve alttaki kısa kod ile bu işi kısmen hallettim.
#!/usr/bin/env python # -*- coding: utf-8 -*- import os, random, time, shutil if __name__ == "__main__": kaynakKlasor = u'/home/ismail/Music' hedefKlasor = u'/media/MUZIKCALAR/Music/' + time.ctime()[4:10] + '/' enCokDosyaSayisi = 160 kaynakKlasor = kaynakKlasor.encode('utf-8') tumDosyalar = [] #altDosyalar = [] for root, dirs, files in os.walk(kaynakKlasor): for f in files: if f.endswith('.mp3'): tumDosyalar.append(os.path.join(root, f)) #if root != kaynakKlasor: # Alt klasordeyim # altDosyalar.append(os.path.join(root, f)) random.seed() random.shuffle(tumDosyalar) print "Toplam dosya sayisi: " + str(len(tumDosyalar)) if os.path.exists(hedefKlasor): shutil.rmtree(hedefKlasor) print "Onceki icerik silindi" os.mkdir(hedefKlasor) for i in range(enCokDosyaSayisi): shutil.copy2(tumDosyalar[i], hedefKlasor + str(i) + " " + os.path.split(tumDosyalar[i])[-1]) print "(" + str(i+1) + "/" + str(enCokDosyaSayisi) + ") " + os.path.split(tumDosyalar[i])[-1]
Üstteki örnek, kaynaktan hedefe en çok 160 mp3 dosyası gönderebiliyor, hafıza yetmezse duruyor.
Bunu bir süre önce kendim için yazmıştım. Kardeşim de kullanmak istedi. Windows kullanıyor. Python'ı kurduk ve nasıl kullanacağını anlattım. Lisede okuyor ve dil bölümünde. Programlama bilmiyor fakat 5 dakikada kabaca nasıl çalıştığını anladı ve kendi işi için kullanabiliyor.