Regex ile uğraşmaya ve anime izlemeye başladıktan sonra altyazılardaki sorunlarımı Python ile çözmeye uğraşıyorum. Bundan önceki yazıda bazı gereksiz etiketleri kaldırmıştım altyazıdan, bu sefer de tüm altyazıyı 82 saniye ileri almam gerekti. Normalde her seferinde VLC’den ileri alınabiliyor. Altyazının formatı diğerinden farklı olarak şu şekilde:
- 13
- 0:2:6,920 –> 0:2:9,280
- Niye? Bence iyi bir plan.
Ve kod da şu:
import os, re
dosyalar = os.listdir(os.getcwd())
ara = re.compile("([0-9]{2}):([0-9]{2}):([0-9]{2}),([0-9]{3})")
for dosya in dosyalar:
file = open(os.getcwd() + "/" + dosya, "r")
liste = file.readlines()
file.close()
print dosya
for satir in liste:
yer = ara.findall(satir)
if yer:
yeni = ""
for parca in yer:
saat, dakika, saniye, salise = (int(parca[0]),
int(parca[1]), int(parca[2]), int(parca[3]))
yeniDakika = dakika + 1
if saniye < 38:
yeniSaniye = saniye + 22
elif saniye >= 38:
yeniSaniye = saniye - 38
yeniDakika = dakika + 2
yeni += "%s:%s:%s,%s " % (saat, yeniDakika,
yeniSaniye, salise)
yeni = yeni.split(" ")
yeniSatir = str(yeni[0]) + " --> " + str(yeni[1]) + "\n"
liste[liste.index(satir)] = yeniSatir
yeniDosya = open(os.getcwd() + "/yeni" + dosya.capitalize(), "w")
yeniDosya.writelines(liste)
yeniDosya.close()
Kod biraz uzun oldu, aklıma daha kısa bir yol gelmedi. Bundan sonra altyazı işlemlerimi yapmak için bir program yazmaya karar verdim, hem bu sayede GUIe de giriş yapmış olacağım. Genel olarak altyazıyı ileri-geri alma, etiketlerden temizleme özellikleri olacak(bu özellik zaten hazır sayılır).
Alakalı Yazılar
- Yeni başlayanlar için gereksiz ve eğlenceli projeler (0)
Çeşitli forumlarda gördüğüm yeni başlayanların öğrenmesi için koyulan gereksiz ama eğlenceli projeler var. Sıkıldıkça birkaç tane çözüyorum, eğlenceli oluyor, birkaç tane daha önce koymuştum.
Burada yine gereksiz bir proje var. Yapmaya çalıştığımız şey linkteki örnekte görülebileceği gibi kristal çizmek. Yöntemi belirlemek için mantığını çözmeye çalışalım, eğer bir kenarı 2 yıldızdan oluşsun istiyorsak ilk satırda 1, ikinci [...]
- Son harfe göre sıralama (1)
Python ile problem çözmek zevkli oluyor gerçekten. Daniweb'de görmüştüm dün, bugün aklıma nasıl yapacağım geldi ve birkaç denemeden sonra çözdüm. Sorun burda. Benim çözümüm ise şu:
[code lang="python"]name_list = [
"Erich Meitinger","Udo Baus","Jens Klein","Bjorn Bork","Heidrun Lovelace","Klaus Abraham","Ulla Jorgens","Volger Jenkings","Helmut Schmidt","Freja Larse","Larry Orkan","Andreas Mauser","Harry Heimlich"]
print name_list
sonharfler = []
sirali_liste = []
for isim in name_list:
sonharfler.append(isim[-1] + [...]
- Python’da türkçe karakterleri büyültme sorunu (0)
Python'da bir cümlenin kelimelerinin ilk harflerini büyültmek için kullanılan capitalize() metodu "i" harfi için çalışmıyor. 'i'.capitalize() dediğinizde "I" harfini veriyor mantıklı olarak. Programımdaki bu sorunu düzeltmek için kendim bir fonksiyon yazdım. Yaptığı iş girilen kelime saıyısı birden fazlaysa kelimelere ayırmak ilk harflerini farklı durumlara (i olup olmama durumu) büyültüp tekrar yazdırıyor:[code lang="python"]def buyukHarf(kelime):
[...]
- Python’da REGEX, işe yarar bir çalışma (0)
Python'da REGEXP(regular expressions, düzenli ifadeler) öğrenmek uzun süredir aklımdaydı, okuduğum kaynak kodlarda sürekli karşılaşıyordum. Bir süredir Python ile uğraşmıyorum fakat aklıma geldikçe bazı küçük işlerimde kullanıyorum. Geçen gün de aklıma bir fikir geldi. Bir dizi(aslında ben anime izliyorum) izlediğinizi düşünün, izlediğiniz videonun özelliklerine göre(FPS) bir altyazı buldunuz fakat altyazıda renklendirme, italik yazdırma vs. için garip [...]
- Python’da recursion: dosya ağacı?! (0)
Recursion kullanarak yapılabileceklere bir örnek, bir arkadaşa göstermek için yazdığım bir dosya ağacı(böyle birşeydi adı) scripti.[code language="python"]
#kullanım: örn. treeGen("/home/osa1/")
import os
def treeGen(place, x=0, sub="-"*6):
main = os.listdir(place)
for file in main:
if os.path.isdir(place + file):
[...]
[...] Python’da regex kullanarak altyazılar üzerinde bazı değişiklikler yapmıştım(ilk yazı burda). Bu seferki kod altyazılar srt formatlı altyazılar için birkaç fonksiyon [...]