Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Python: Tallentaa useasta csv-tiedostoista lasketun summan erilliseen tiedostoon

jajarvin [05.11.2012 10:59:21]

#

## Functio laske_summa_ja_tallenna() laskee useasta csv-tiedostosta haettujen lukujen summan ja
## tallentaa tämän summan erilliseen tiedostoon


##
## CSV-data on esimerkiksi tiedostossa file test_1.csv
## Yksi tämän tiedoston rivi koostuu päivämäärästä ja kokonaisluku
## eli esimerkiksi
## 04.11.2012,1000
##
## Luo kaksi csv-tidostoa test_1.csv and test_2.csv
## Tiedoston test_1.csv sisältö on:
## 12.10.2012,4500
## 04.11.2012,1000
## 29.01.2012,2500
## 04.11.2012,4000
##
## Tiedoston test_2.csv sisältö on:
## 17.04.2012,1000
## 04.11.2012,5000
## 09.02.2012,4500
## 12.04.2012,4000
##
##===>
##===> Lasketaan tähän päivään (04.11.2012) liittyvien lukujen summa
##===>
##
## Voit kahdella tavalla suoritaa ohjelman:
## "filedialog" - method --> käyttäjää pyytetään antamaan tiedostojen  lukumäärä ja tämän jälkeen tiedostojen nimet (d)
## "files are given in this code" - method --> tiedostojen nimet ovat tässä koodissa (f)
##
def laske_summa_ja_tallenna():
    method = input("Kumpi metodi: dialog(d) tai file included(f) ")
    #### Method: filedialog
    if(method == 'd'):
       print("Method: filedialog")
       import tkinter.filedialog
       file_count = 0
       ## Give the number of files
       file_count = input("How many files you have ")
       file_count = int(file_count)
       print("=====>Tiedostoja ", file_count," kappletta")
       sum = 0
       while file_count > 0:
          al_filename = tkinter.filedialog.askopenfilename()
          file = open(al_filename, "r")
          file_sum = 0
          for line in file:
             comma_pos = line.find(",")
             time_stamp = line[0:comma_pos]
             data = line[comma_pos + 1:].rstrip("\n")
             if(time_stamp[0:2] == '04'):
                print("4th Day - ", time_stamp, data)
                file_sum = file_sum + int(data)
                file_count = file_count - 1
          file.close()
       sum = sum + file_sum
       print("Sum in file ",al_filename, " is ", sum)
    print("\nsum is ", sum)

    #### Method: files included in script
    if(method == 'f'):
       print("Method: files are given in this code")
       ## files are in a list
       file_lst = ['test_1.csv', 'test_2.csv']
       sum = 0
       for i in range(0, len(file_lst)):
          file_name = file_lst[i];
          file = open(file_name, "r")
          for line in file:
             comma_pos = int(line.find(","))
             time_stamp = line[0:comma_pos]
             data = line[comma_pos + 1:].rstrip("\n")
             if(time_stamp[0:2] == '04'):
                print("4th Day - ", time_stamp, data)
                sum = sum + int(data)
          file.close()
      print("Sum is ", sum)

    ## Save today's sum in a file
    file_name = "save_sum.txt"
    fn = open(file_name, "w")
    fn.write(str(sum))
    fn.close()
    print("\n===========> Summa tallennettu tiedostoon save_sum.txt <============")

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta