From: Neşet ÖZKAN (nozkan@gmail.com)
Date: Sat 19 Aug 2006 - 10:02:34 GMT
Acemi bir python meraklısıyım. Bir deneme yapıyorum. Yazdığım kod
aşağıda ancak birşeyler eksik gibi geliyor bana. Hoş kod istediğim şeyi
yapıyor ama yinede
tatmin edmedi beni. Vakti olanlardan tecrübeli programcılardan böyle bir
işlem için şöyle düşünmeliydin gibi tavsiyeler alırım umuduyla buraya
yazdım.
İlgilenenlere şimdiden teşekkür ederim.
#! -*- coding:cp1254 -*-
import re
class VeriAl:
def __init__(self,text_dosyasi):
#Log File içinde bulunacak değerler için re tanımlamaları
self.re_listesi=(
re.compile(r"""(?<=(PUTNC\sFile:))(\s\w{0,8})"""), #program_no
re.compile(r"""(?<=(D=))(\d{0,2})"""), #takim_capi
re.compile(r"""(?<=(R=))(\d{0,2})"""),
#takim_radyusu
re.compile(r"""(?<=(Offset\s{8}:))(\s*\d{0,2}\.\d{0,2})""") #ofset
)
#Re taraması sonucu bulunanların toplanacağı liste
self.veri=[]
#Re'leri bul ve veri listesini düzenle
map(self._ara,text_dosyasi)
def _veriyi_duzenle(self,bulunan_text):
#program_no için
if self.re_ifadesi==self.re_listesi[0]:
self.veri.append({
"program_no":bulunan_text,
"takim_capi":[],
"takim_radyusu":[],
"ofset":[]
})
#takim_capi için
elif self.re_ifadesi==self.re_listesi[1]:
self.veri[-1]["takim_capi"].append(bulunan_text)
#takim_radyusu için
elif self.re_ifadesi==self.re_listesi[2]:
self.veri[-1]["takim_radyusu"].append(bulunan_text)
#ofset için
elif self.re_ifadesi==self.re_listesi[3]:
self.veri[-1]["ofset"].append(bulunan_text)
def _ara(self,text):
for i in self.re_listesi:
self.re_ifadesi=i
try:
bulunan_text=self.re_ifadesi.search(text).group()
except AttributeError:
pass
else:
self._veriyi_duzenle(bulunan_text)
if __name__=="__main__":
file=open("test1.txt","r")
r=VeriAl(file)
print r.veri
file.close()
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama