20-03-2013 15:23, What you get is Not what you see yazmış:
Fazla mesaj kirliligi olmasin ama eklemeyi unutmusum Neredesin python oneliner? :)
Selamlar, Buyrun... :)
Açıklamalı örnek ektedir... -- Kolay gelsin, Mucip:)
#!/usr/bin/env python # -*- coding: utf-8 -*- # # isimsiz.py # # Copyright 2013 mucip <mucip@debian-ev> # örnek bir uygulamadır... # [email protected] # Burada programda kullanılan # Kütüphaneler ekleniyor. #from tkMessageBox import * import sqlite3 #from string import * #import time #import math #import locale # Burada veritabanı oluÅturuyoruz. Dikkat edersen hafızaya da VT oluÅturabiliyorsun. # VT deÄiÅkenleri ve kursör'ü deÄiÅtir istersen. Korkunç hızlı çalıÅıyor :) connection=sqlite3.connect('DataLogger.db') connectionMemory=sqlite3.connect(':memory:') cursor = connection.cursor() #cursor2 = connection.cursor() #cursor3 = connectionMemory.cursor() #Veritabanı dosyası yoksa eÄer burada oluÅturuluyor... cursor.execute('CREATE TABLE if not exists Tablo (SiraNo INTEGER PRIMARY KEY AUTOINCREMENT, DegiskenI VARCHAR(20), DegiskenYil VARCHAR(2), DegiskenAy VARCHAR(2), DegiskenGun VARCHAR(2), DegiskenSaat VARCHAR(2), DegiskenDakika VARCHAR(2), DegerR REAL, DegerG REAL, DegerS REAL, DegerB REAL, DegerRY REAL, DegerRH REAL, DegerMRY REAL, DegerMRH REAL)') #connectionMemory.commit() connection.commit() # Varolan kayıtları siliyor. ÃakıÅma olmasın diye. Ama sadece tek bir dosya ile çalıÅacaksanız bu satırı kaldırabilirsiniz de? cursor.execute('DELETE FROM Tablo') connection.commit() # Bu kısımda metin dosya okunuyor. # Okuma döngüsünde ";" ayracına göre parçalanıyor ve veritabanına yazılmaya baÅlıyor... crs = open("data.txt", "r") sayac = 0 for columns in ( raw.strip().split(";") for raw in crs ): # İlk satırda kolon baÅlıkları var. Bu satırı pas geçmesi için bu kontrlü koyuyoruz... if sayac > 0: cursor.execute('INSERT INTO Tablo (DegiskenI, DegiskenYil, DegiskenAy, DegiskenGun, DegiskenSaat, DegiskenDakika, DegerR, DegerG, DegerS, DegerB, DegerRY, DegerRH, DegerMRY, DegerMRH) VALUES("'+ columns[0] +'","'+ columns[1] +'", "'+ columns[2] +'", "'+ columns[3] +'", "'+ columns[4] +'", "'+ columns[5] +'", "'+ columns[6] +'", "'+ columns[7] +'", "'+ columns[8] +'", "'+ columns[9] +'", "'+ columns[10] +'", "'+ columns[11] +'", "'+ columns[12] +'", "'+ columns[13] +'")') connection.commit() sayac = sayac + 1 #connectionMemory.commit() print "Yazılan satır: ", sayac print "Tüm dosya veritabanına yazıldı. Ortalamaları almaya baÅladı..." # Burada artık veritabanından okumaya baÅlıyor... # DeÄiÅkenler belirleniyor... ToplamR = 0 ToplamG = 0 ToplamS = 0 Adet = 0 # İlk satırdaki saat bilgisini alıyor cursor.execute('SELECT * FROM Tablo') Bul=cursor.fetchone() OncekiSaat = Bul[5] cursor.execute('SELECT * FROM Tablo') for row in cursor: if row[5] <> OncekiSaat: OrtalamaR = ToplamR / Adet OrtalamaG = ToplamG / Adet OrtalamaS = ToplamS / Adet print "Yıl: ", row[2], " Ay: ", row[3], " Gun: ", row[4], " Saat: ", OncekiSaat, " Ortalama R: ", OrtalamaR, " Ortalama G: ", OrtalamaG, " Ortalama S: ", OrtalamaS Adet = 0 ToplamR = 0 ToplamG = 0 ToplamS = 0 OncekiSaat = row[5] Adet = Adet + 1 ToplamR = ToplamR + row[7] ToplamG = ToplamG + row[8] ToplamS = ToplamS + row[9] # İÅlem bitiminde açık olan kursör, baÄlantılar ve metin dosya kapatılıyor... cursor.close() connection.close() crs.close()
_______________________________________________ Linux-programlama mailing list [email protected] https://liste.linux.org.tr/mailman/listinfo/linux-programlama Liste kurallari: http://liste.linux.org.tr/kurallar.php
