[Linux-programlama] Python:Alt Alta Sürekli Yazdırma

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Yuce Tekol (yucetekol@gmail.com)
Date: Tue 20 Jun 2006 - 12:11:20 GMT


Merhaba,

1) Probleminiz dosyayi "w" kipinde (mode) acmanizdan kaynaklaniyor,
eger dosyayi "a" kipinde acarsaniz, yazdiginiz seyler dosyanin sonuna
eklenir. (file() islevi ile kullanabileceginiz kiplerlin listesi:
http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.12.html#fopen)

2) yazar islevi neden ozyinelemeli (recursive)? Basit bir while
dongusu ile bu isi halledebilirdiniz.

3) close() yontemini try/except icinde yazmaniza gerek yok, zaten
kapali olan bir dosyayi kapatmak istisnaya (exception) yol acmiyor.

4) Dosyayi "a" kipinde actigimiz icin os.path.exists islevine de gerek kalmiyor.

Asagida gonderdiginiz kodda yaptigim degisiklikler yer var; kolay gelsin.

Yuce Tekol

# -*- coding: utf-8 -*-

def yazar(yazici):
        cd_ismi = raw_input("CD'nin ismini giriniz (Çıkmak için 'q' tuşuna basınız): ")
        
        if cd_ismi == "q":
                yazici.close()
                return False
        else:
                print>>yazici, cd_ismi
                return True

dosya = file("cdkayit.txt", "a")
while yazar(dosya):
        pass

On 6/20/06, Buğrahan Korkmaz <kickboksor@gmail.com> wrote:
> Selam,
>
> Arkadaşlar biliyorum sizleri çok rahatsız ettim ama ne yapiyim elimde değil.
>
> Şimdi ben konsolda çalışan bir cd katalog programı yapıcam. Bir dosyayı open
> ile açıyorum ve yazdırıyorum. Kapatmadan bir daha yazdırıyorum ama sadece
> ilk yazdırdığım çıkıyor. İşte kod burda. Ben yazdıklarımı alt alta yazmasını
> istiyorum...
>
> #!/usr/bin/python
> # -*- coding:utf8 -*-
>
> #
> # cdkayit.py
> #
>
> import os
>
> def yazar():
> cd_ismi = raw_input("CD'nin ismini giriniz (Çıkmak için 'q' tuşuna
> basınız): ")
> if cd_ismi == "q":
> try:
> yazici.close()
> except:
> print "Zaten dosya açık değildi"
>
> sys.exit(1)
> else:
> yazici = open("cdkayit.txt","w")
> yazici.write(cd_ismi)
> return yazar()
>
> if os.path.exists("cdkayit.txt"):
> yazar()
> else:
> f = open("cdkayit.txt","w")
> f.close()
> yazar()
>
> Yardımlarınız için teşekkürler...
> --
> Buğrahan Korkmaz
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>
>

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.