Python - Ayuda con almacenamiento de datos

 
Vista:
sin imagen de perfil

Ayuda con almacenamiento de datos

Publicado por Paula (3 intervenciones) el 26/04/2018 20:50:53
Debo hacer un programa que dado un archivo de texto como el de mas abajo lo lea y utilizando las clases encuentre de cada TPV cual es el producto de maximo beneficio (la multiplicacion de los dos numeros en el fichero de texto) y cual es el TPV de mayor beneficio y mostrarlos por pantalla. Pero estoy teniendo problemas con este codigo al guardar los valores en el diccionario.
Agradeceria mucho la ayuda!


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import sys
import os
 
class TPV:
    Dic={}
    def __init__(self,prod,diners):
        self.prod=prod
        self.diners=diners
    def guardar_dic(self,tpv,obj:
        TPV.Dic[tpv]=obj
    def imprimir_valors(self):
        print(self.prod,self.diners)
 
    def imprimir_dic():
        for tpv in TPV.Dic:
                    TPV.Dic[tpv].imprimir_valors()
 
 
def fitxer():
 
    nomfitxer=input('Digues el nom del fitxer: ')
    data_inici=int(input('Data inici: '))
    data_fi=int(input('Data fi: '))
    f=open(nomfitxer,'r')
    if os.stat(nomfitxer).st_size==0:
        print('Archiu buit')
        sys.exit()
    else:
        dades=f.readlines()
        i=0
        while dades[i]!='FiVendes\n':
            tpv=dades[i]
            i+=1
            while dades[i]!='FiTPV\n':
                data=dades[i]
                i=i+1
                if int(data)>=data_inici and int(data)<=data_fi:
                    while dades[i]!='FiFactura\n':
                        ls=dades[i].split()
                        prod=ls[0]
                        quant=int(ls[1])
                        preu=int(ls[2])
                        diners=quant*preu
                        obj=TPV(prod,diners)
                        obj.guardar_dic(tpv,obj)
 
                        i=i+1
                        obj.imprimir_dic()
                else:
                    while dades[i]!='FiFactura\n':
                        i=i+1
                i=i+1
 
            i=i+1
    f.close()
 
 
fitxer()



Captura
Captura1
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Ayuda con almacenamiento de datos

Publicado por Romero (1 intervención) el 27/04/2018 22:58:22
Mmmm esta super interesante tu código, la verdad no sabría como explicarte sin modificarlo mucho. Ayer estaba leyendo sobre almacenamiento de datos con python en http://www.escueladepython.com/ , quizás alli consigas la manera un abrazo!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Ayuda con almacenamiento de datos

Publicado por Paula (3 intervenciones) el 28/04/2018 19:14:39
Gracias de todas formas, finalmente he conseguido lo que buscava a excepcion de algunos errores
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar