python ile dosyanın başına yazı ekleme

linuxta bir dosyanın sonuna birşey eklemek çok basittir. Mesela:

echo "Sonuna ekledim" >> dosya.txt

Bu şekilde bash’te işimizi çok kolay halledebiliriz.

Ancak dosyanın başına yazı eklemek bu kadar kolay olmuyor. Bunu gerçekleştirebilmek için bir python scripti yazmaya karar verdim. Amacım ise unutulan bir satırlık kodu ekleyerek dosyanın tıklanarak çalıştırılmasını sağlamak. (windows kullanıcıları bunu yazmıyorlar çünkü onlarda öyle bir problem yok)

Yapılacaklar sırayla:

  1. o klasördeki dosyaları bulmak
  2. bunlardan uzantısı py olanları filtrelemek
  3. geçici dosya açıp ona eklenecek satırları eklemek
  4. geçici dosyaya asıl dosyanın içeriğini eklemek
  5. geçici dosyanın ismini asıl dosyanınki haline getirmek.

Şu adresten yazdığım scripti alabilirsiniz: http://dhalsim.pastebin.com/f218830cd

Reklamlar

3 responses to this post.

  1. Posted by Fırat on 30 Ara 2009 at 1:11 pm

    bunu bash de halledebilirsin.

    python için örnek vermişsin, bunun üzerinden gidelim.

    dosya adı: deneme.py

    eklemek istediğin satır: #! /usr/bin/env python\n# -*- coding: utf8 -*-\n

    yapılacak işlem: echo “#! /usr/bin/env python\n# -*- coding: utf8 -*-\n” `cat deneme.py` > deneme.py

    bu kadar 🙂

  2. Posted by Fırat on 30 Ara 2009 at 1:12 pm

    sorun linuxa özgü ise, çözüm de öyle olmalı 🙂

  3. Posted by Fırat on 30 Ara 2009 at 1:57 pm

    Bu arada pastebin e koyduğun koda bir daha baktım. İlk mesajımdaki komut ile tek dosya üzerinde işleme örnek vermiş oldum. Yapmak istediğini yine bash scripti olarak yapabilirsin. Şöyle ki:

    #!/bin/bash
    for file in *.py
    do
    echo -e “#!/usr/bin/env python\n# -*- coding: utf8 -*-\n” `cat “$file”` > “$file”
    done

    Her durumda bash scripti ile daha iyi işte. Komut satırında zaten bash’de iken üstüne bir de python çağırıp yorumlatmıyorsun.

    Not: echo ile “\n” i newline karakter olarak yazdırmak için -e parametresini vermek gerekiyor (muş öğrenmiş olduk 🙂 ).

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: