Python ile klasör isimlerini topluca değiştirin

2-3 haftadır Python çalışıyorum tekrardan ve bu sefer bir çok şey öğrendim. Öğrendiğim yeni bilgileri sizlerle paylaşayım dedim. Uzun zamandır aklımı meşgul eden bir konu vardı onu Python sayesinde halletim bu sayede. Şimdi kısaca bilgisayarımda fotoğraflarla dolu 20-30 tane klasör var, bunları da hep şu şekilde yazmıştım:

Almanya_ekim_2007
Bolum_temmuz_2006
Bilmemne_hede_höde_2008

Fakat sonraları baktım ki bu biçim bana uygun değil,sondaki yıl ibarelerini en başa getirirsem çok daha uygun olacağını anladım, yani şu şekilde bir şey:

2007_almanya_ekim
2006_bolum_temmuz
2008_bilmemne_hede_höde

Haliyle bir sürü klasör olunca hepsini elle teker teker yapmak yerine bir tane küçük Python betiği yazayım ve kendisi hepsini değiştirsin dedim. İlk önce yazdığım betik aşağıdaki gibi:

[cc lang="python"]
#!/usr/bin/python
# -*- coding: utf-8 -*-

import os, re

def renamer():
for filename in os.listdir(os.curdir):
if re.search('(\w)_(\d)', filename):
m = re.compile('([a-z_]*)_([0-9]*)', re.IGNORECASE)
names = m.search(filename)
newfilename = names.group(2) + '_' + names.group(1).lower()
print newfilename
#os.rename(filename, newfilename)

if __name__ == '__main__':
renamer()
[/cc]

Betiği klasörleri değiştirmek istediğimiz klasörün içinde çalıştırmamız lazım. Kısaca yaptığı adımlar şunlar(satır numaralarına göre):

  • Satır 7: Klasörün içindeki klasörlerin bir listesini çıkartıyor, ve teker teker isimleri alıyor
  • Satır 8: Eğer klasörlerin sonunda sayılar varsa devam et, yoksa hiç bir şey yapma
  • Satır 9: Klasör isimlerini için bir tane regex ifadesi yazıyoruz.
  • Satır 10:Ardından bu regex ifadesi için bizim klasör'ler aranıyor ve ona göre bulunuyor
  • Satır 11:Bulunduktan sonra names.group() şeklinde bunlara ulaşabiliyoruz, bunlarla da istediğimiz şekildeki yeni dosyamızı oluşturuyoruz, ben 2008 + _ + dosya_deneme şeklinde yaptım, sizler farklı yapabilirsiniz tabi.
  • Satır 12:İstediğimi ifadeler doğru çıkıyor mu, çıktısına bakalım
  • Satır 13:Eğer doğru ise bu satırın önünde # ifadesini kaldıralım.

Öğrendiklerim bazı noktalar var, örneğin regex ifadelerini kesinlikle çok iyi bilmek lazım. Örneğin 9'uncu satırdaki ifade'yi irc'de acemi'den aldım. Ondan önce re.split ile bir yöntem denemiştim fakat tam istediğim gibi olmadı. O yüzden bu gibi işlemler için regex ile aranız ne kadar iyi olursa sizin için daha iyi olacaktır. Örneğin 8'inci satırdaki if durumunu kitaptan bakarak yaptım ve istediğim şekilde çalıştı. \w tüm alfabetik harfler demek, \d ise tüm sayılar demek. Yani eğer harfler_sayılar şeklinde bir dosya ismi var ise filename içinde o zaman devam edecek, yoksa betik hiç bir şey yapmayacak. Ayrıca büyük harfleri küçük harflere dönüştürmek için sadece .lower() ifadesini ekledim, aynı şekilde yeni bir isim oluşturmak tıpkı lego taşları ile oynamak kadar kolay. Gerçekten sevilesi bir dil Python.

Betiği düzgün bir şekilde çalıştıdıktan sonra, sonuçlar da şu şekilde olacaktır:

Python Betik

Ayrıca bu betik yazdığım ilk Python betiği özelliğini taşıyor. O yüzden ki bir sürü hata ya da gereksiz kod parçası olma olasılığı çoktur. Onun dışında Python ile cidden kısa zamanda güzel işler yapabilirsiniz, zaten kullandıkça yeni şeyler öğrenmemek elde değil. Bakalım zaman ne gösterecek inşallah zamanla çok daha farklı şeyler öğrenmiş oluruz.

Tek tıklama ile masaüstünüzden sunucunuza bağlanın

Şu arala Gnome kullandığım için, daha önce bilmediğim bir kaç özellik öğrenmiş oluyorum. Gün içinde bir çok kez sunucuya bağlanıp işlerimi düzenliyorum. Bunu da genellikle konsol üzerinden ssh ile doğrudan yaparım(özellikle wordpress güncellemelerinde) ya da dosya aktarımları için Gftp kullanarak hallederim. Fakat bazen öyle oluyor ki hemen anında bir tane dosyayı atmam gerekiyor.

Şimdi Gnome'da masaüstüne ya da herhangi başka bir dizine sunucunuz için özel bir klasör düzenleyebiliyorsunuz. Bu klasöre tıkladığınız an, sunucu ile bağlanıp sanki normal masaüstündeymiş gibi kullanabiliyorsunuz. Bu özellikle benim açımdan baya yararlı bir şer olduğu için hem arsln.org hem de murekkep.org için iki tane klasör hazırladım. İşin ilginç yanı bu özelliği tamamen şanş eseri buldum. Şimdi tek yapamız gereken masaüstüne sağ tıklayarak "Create Launcher ..." ibaresine tıklamak

launcher.png

, ve aşağıdaki gibi doldurmaktır:

screenshot-create-launcher-2.png

Burada tek önemli olan kısım command kısmıdır. Normalede konsoldan ssh kullanıcıismi@domain.org gibi bir komutla bağlanmanız mümkün, burada da mantık aynı. Ayrıca belirli bir klasöre doğrudan giriş yapmak istiyorsanız onu da yapabilirsiniz. Örneğin ben kendim için şu ibareyi kullandım : ssh://fatih@arsln.org/home/fatih/ . Burada sunucumdaki /home/fatih klasörüne doğrudan giriş yapıyorum. Sunucunuzda birden fazla klasör barındırıyorsanız bu sayede kolay bir şekilde her klasör için ayrı ayır klasörler oluşturmanız da mümkün oluyor.

Asus EEE Pc hakkındaki düşüncelerim

Asus EEE son zamanların en çok konuşulan konularından biri. Neden bu kadar çok konuşuldu diyeceksiniz şimdi? Bunun bir çok nedenleri var. En önemli kısımı bence fiyatı ve ve taşınabirliği. Bana göre taşınabirliği çok daha önemli. 7 inclik bir makine gerçekten mobil anlamda anlamlı bir alettir. Şu ana kadar kullandığımız dizüstü'lerin çoğu gerçek anlamda taşınabirlikten çok uzak nesnelerdir, ama işte bize taşınabilir diye yutturdular o başka bir şey.

1.jpgAsus ne yaptı peki ? Dedi ki aslında siz yanılıyorsunuz, öyle 1-2 kg yanında taşımak taşınabirlik değildir, görün ben ne yapacam, hem sizin Windows'unuza da gerek kalmadan hem de çok uygun bir fiyata diyerekten Asus EEE Pc'yi çıkartı. Çoğunun burada bahsetmediği(çoğu derken yabancı sitelerdeki bazı kişiler) şey ise üzerindeki işletim sistemin getirdiği avantajlardır. Herkes ilk başta şaşırdı nasıl olur da bu kadar ucuz bir şeyi hem böyle küçük bir aleti bu şekilde satabilirler diye? Zihirli kelime tabi ki Linux!

Asus EEE Pc'nin getirdiği başarının %90'nı bana göre Linux'a borçludur. Eğer piyasa'da istedikleri gibi kurcalayacakları bir işletim sistemi olmasaydı, üstüne üstüne donanımla iyi anlaşamayacak bir işletim sistemi olmasaydı böyle bir aletin çıkması da zorlanırdı. Asus'un ne bir lisans derdi var, ne de para derdi oldu bu konuda. Bünyesinde barındırdığı mühendisleri adam akıllı çalıştırıp iyi bir straji geliştirdi. Şu an üzerinde bulunan çakma Kde arayüzü de bu mühendislerin başarısıdır. Normal bir kullanıcı bunun Linux olup olmadığını hiç bir zaman da anlamayacaktır. Ama o üzerindeki harika programlara bayılacaktır(Amarok gibi...). Aslında o kadar ahım şahım özelliklere sahip olmayan bir bilgisayarın getirdiği performansa bayılacaktır. Daha da önemlisi önümüzdeki aylarda bolca Asus Theme hack, Archlinux on Asus EEE, Ubuntu on Asus EEE, gibi çokca belge bulacağız. Biz insanlar böyle şeylere meraklandığımız için bolca bu belgere bakacağız.

Asus EEE PcNormal bir kullanıcı bu alete bayılacak, diyecek ki "ya üzerindeki o muhteşem müzik oynatıcısı da keşke normal bilgisayarımda olsaydı". Ardından Linux dünyasına adımını da atmış olacaktır. Bunlar bana göre önemli etkenler. 2008 yılı, sizlere açıkca söyleyeyim Asus EEE'den sonra ve öncesi diye ayrılacak. Bu yıl gerçek anlamda mobil olan aletlerle taşınacağız, ve üstüne üstüne ucuz bir maliteye bunlara sahip olacağız. UMPC'lerin yılı olacak. Herkes UMPC'ler tutmayacak, piyasa'ya sürülse bile tutulmayacak dese bile, Asus bunun tam tersini ispatlamıştır. Gerçi Asus EEE tam bir UMPC değil ama ona yakın bir şey.

Asus EEE Pc donanımsal olarak çok iyi bir şey demiyorum, ahım şahım bir şey değil, ama diğer tüm etkenler bu eksiklere gidermeye yetiyor. Bana göre insanlar adam akıllı bir masaüstü sistemi almalı evlerini, adam gibi ekran kartı, adam gibi işlemcisi olan bir bilgisayar. Mobil kısmını da bu gibi aletler giderebilir(ihtiyaçlara göre değişir tabi ki). Bu dediklerim tabi ki benim gibi internet,office,vs ... gibi işlerini yapmak isteyenler içindir. Gerçekten düşünün bir, bu alet bence tüm ihtiyaçlarınızı giderebilir. Örneğin okula giderken bunu alıp, raporlarımı kolay bir şekilde bunu üzerinde yazabilir, wifi ile bağlanbilir işlerimi halledebilirim. Ağır işleri ise evimdeki bilgisayarımda yapabilirim(ağır'dan kastım işlemci gücü,vs .) Çok avantajı olduğu kesin.

Bunların dışında sizlerle Asus EEE Pc hakkında okumanızı tavsiye edeceğim bağlantılar var:

  1. Bundan 2 gün önce okuduğum bir yazıyı da okumanızı istiyorum. Bugün Fazlamesai.net'de de aynı yazının paylaşıldığını gördüm(oradaki yorumlar da benim gibi taşınabirliğinin güzelliğinden bahsetmişler). Kısaca yazıda Asus'un piyasayı altına üstüne getirdiği, bir çok firmanın kötülü rüyası olduğu dile getiriliyor.
  2. Onun dışında Ars Technica'nın yazdığı kapsamlı harika bir inceleme yazısı var.
  3. Asus üzerindeki dağıtımı silip kendi sevdiğiniz dağıtımı yükleyebilirsinz, örneğin Archlinux, Gentoo, Debian, Ubuntu gibi ...
  4. Son olarak eeeuser.com adında harika bir site var. Yüzlerce Asus EEE Pc'i hack'i bulabilirsiniz. Ne ararsanız var, dokunmatik ekran ekleyenler, wifi b/g yerine wifi n ekleyenler, 3g özelliğini ekleyenler, ...

Video dosyalarınızı sağ tıklayarak 320×240 formatına dönüştürün

Daha önce Thunar için küçük bir "custom action" hazırlamıştım. Eğer bilgisayarınıza tv bağlı ise sağ tıklayarak doğrudan oradan açılmasını sağlıyordu. Buna benzer küçük bir betik daha yazdım. Betik zaten hemen hemen aynı, fakat bu sefer yaptığı iş farklı.

Telefonum için 4gb kart aldım. Artık yeterince yerim de olduğu için izlemek istediğim dizileri telefondan otobüsle git gel yaparken izleyeceğim. Fakat bundan önce filmi hem 320x240 formatına çevirmemiz lazım, hem de altyazı filmin içine gömülmesi lazım. Bunu da daha önceki bir yazımda anlatmıştım. Ben bu betiği biraz daha değiştirdim, ve artık DivX Mobile Player'lerde sorunsuz bir şekilde de çalışıyor(Diğeri için codec yüklenmesi gerekiyordu). DivX Mobile Player uygulumasını cep telefonunuz için ücretsiz olarak resmi sitesinden indirebilirsiniz.

Betiğimiz şu şekilde:

#!/bin/bash

for D in *.[sS][rR][tT] ; do

mencoder -sub "$D" -subcp latin5 -subfont-text-scale 4 -vf scale=320:240 -oac mp3lame -lameopts vbr=0:br=32:mode=1 -ovc xvid -xvidencopts bitrate=256 -ofps 20 -sws 2 -o mobilevideoNEW.avi "$1"

done
exit 0

Betiği convertfilm.sh diye /usr/bin altına kaydedip, chmod +x convertfilm.sh yaparak herhangi bir konsol altından şu şekilde çalıştırılabilir

convertfilm film.srt film.avi

Bunun sonucunca mobilvideoNEW adında bir dosya oluşacak. Bu da bizim yeni oluşan filmimiz oluyor. Betiği kafanıza göre düzenleyebilirsiniz tabi. Örneğin -ofps 20 seçeneğini bize frame sayısını ayarlatabiliyor. N95 30'a kadar destekliyor, fakat daha eski telefonlarda bu sorun olabilir, o yüzden onu 15 yapmakta yarar var. Onun dışında mode:1 olan kısımdaki sayı da değiştirilerek stereo(0),jingle-stereo(1) ya da mono(3) yapılabilir. Bitrate kısmı da 256 ideal demiştim daha önceki yazımda, şimdi de öyle. Denemek isteyenler 384 yapıp tekrar deneyebilirler. Filmin kendisi biraz daha yer tutacak ama kalite de artmış olacak. Diğer bilgilerin hepsini "man mencoder" yaparak bulabilirsiniz.

Tabi her zaman konsol açık değildir diye, şu işlemleri de yaparsak tadından yenmez. İlk önce Thunar'da (Edit > Configure custom actions) tıklayarak boş alanları şu şekilde dolduruyoruz:

Name: Film'i 320x240 formatına dönüştür
Command : /usr/bin/convertfilm %f
Appaearance Conditions
File Pattern : *.avi
Appears if selection contains: Video File

Kaydedelim bu şekilde, dilerseniz de ayrı bir simge ekleyin ki daha güzel dursun menüde. Bundan sonra bir klasör içinde bir film ve altyazı bulunmak şartıyla bir filmin üzerine sağ tıklarsanız şu ibare çıkacaktır:

videthunar.jpg

Tıkladığımız an arka planda mencoder çalışacak, ve video'muzu 320x240 formatına çevirecek ve altyazı da içine gömülecek.

Hem donanım hem de yazılımı açık-kaynak olan zamazingo

Mürekkep için yazdığım bir yazı var. Hem yazılımı, hem de donanımı tamamen açık-kaynak olan modüler bir alet'den bahsediliyor. En güzel yani ise Lego taşları gibi farklı şekilere sokabilmenizdir. Akla gelmeyecek şeyler yapılabilir bununla. Okumanızı tavsiye ediyorum:

Bug ile kendi zamazingonuzu kendiniz yapın - Murekkep.org

Creative Desktop Wireless 9000 Pro Klavyesi ve Keytouch dosyası

Bugün okul çıkışında Halil'le beraber Vatan Bilgisayara gittik. Klavyeleri incelereken bir tane klavye+fare setini çok beğendim ve aldım.Aldığım setin adı da Creative Desktop Wireless 9000 Pro. Fiyatı ise 52 YTl. Klavye'nin en belirgin özellikleri kablosuz olması ve bunu da güzel kılan doldurlabilmesidir. Yanında gelen fare de öyle. İkisini de doğrudan Usb girişinden doldurabiliyorusunuz. Bu fiyat bu özellik için çok çok iyi. Aynı kulvarda Logitech marka seti ise 85-90 YTl arasındaydı. Masaüstümden bir görüntü:

creative_dw.jpg

Gördüğünüz gibi gri-siyah, ince ve sık bir tasarıma sahip.

Gelelim en güzel habere. Daha önce de dediğiin gibi Usb'li klavyelerdeki tüm tuşlar pek iyi çalışmıyor demiştim.Fakat beni sevindiren olay, Creative Desktop Wireless klavyesindeki tüm tuşların sorunsuz bir şekilde çalışmasıdır. Hatta üstünde bulunan ses tekerliği de çalışıyor. Tüm tuşlar programlanabilir olduğu için de çok daha güzel tabi ki.

Klavye'yi ayarlamak için Keytouch'a klavyeyi eklemek istedim. Fakat Creative ait hiç bir markanın girdisi bulunmuyordu. Ben de keytouch-editor adlı paketi yükleyip kendim bir tane keytouch dosyası oluşturdum:

Creative Desktop Wireless 9000 - Keytouch Dosyası

Bu klavye'yi aldıysanız tek yapmanız gereken keytouch programını indirip, yukarıda oluşturduğum dosyası yüklemek. Artık tüm tuşlar çalışır vasiyete gelmiş olacaktır. Musik kısayoluna ben Sonata'yı ekledim. Durdur,çal, geriye gibi tuşları da Mpd'ye göre ayarladım. Fakat Amarok,Xmms gibi programlar için doğrudan içinden gelen eklentiler var onları kullanabilirsiniz.

Gerçekten daha iyi olamazdı. Kablosuz, tüm tuşları çalışan, sık bir tasarıma sahip olan ve fiyat/performans oranı çok iyi olan bir klavye aldım. Linux kullanan herkese bu klavye'yi kayıtsız şartsız tavsiye ederim(kalitesi de iyi sayılır, fakat 3-4 ay sonra ne olur bilemem). Tüm multimedya tuşları da çalışır vasiyete. Benim için daha iyi olamazdı şahsen.

Next Page »