Python - Modificar un archivo de texto

   
Vista:

Modificar un archivo de texto

Publicado por Daniel (1 intervención) el 01/12/2014 03:33:32
Hola, tengo un problema con este programa. La idea de este programa, es que a partir de un archivo ya creado, leer la informacion de este y modifica la parte que quiera modificar. El archivo es .txt. Pero el problema es que no modifica la informacion, solo la guarda en memoria. Alguien me podria ayudar con eso porfavor? Se los agradeceria.

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
59
60
61
62
63
64
65
66
67
68
69
70
71
def read():
    arch=open('Obras.txt','r')
    p=[]
    x=int(input("Digite la posicion en donde se encuentra la informacion: "))
    ##Se recorre el archivo  y  se coloca en una lista para que quede como una matriz
    for i in arch:
        line=i.strip().split(',')
        pos=line[0]
        n=line[1]
        cat=line[2]
        pais=line[3]
        act=line[4]
        hi=line[5]
        hf=line[6]
        s=line[7]
        p.append(line)
    ##recorre la lista hasta la longitud de la lista
    arch.close()
    arch=open('obras.txt','a')
    for i in range(len(p)):
        for j in range(8):
            ##si la posicion en el archivo es igual a la q el usuario de ingreso
            ##entonces entro a ver esa fila y miro que modificar
            if p[x-1][0]==pos:
                print('Pelicula:',n)
                print('Categoria: ',cat)
                print('Pais: ',pais)
                print('Actores: ',act)
                print('Hora de Inicio:',hi)
                print('Hora Final:',hf)
                print('Sala:',s)
            print('Que desea modificar: ')
            print('1.Nombre:')
            print('2.Categoria:')
            print('3.Pais:')
            print('3.Actores ')
            print('4.Hora Inicial')
            print('5.Hora Final')
            print('6.Sala')
            print('7.Salir')
            res=int(input('Digite su opcion: '))
            while (res!=7):
                if(res==1):
                    l=input('Digite el nombre de la pelicula')
                    p[x-1][1]=l
                elif(res==2):
                    y=input('Categoria:')
                    p[x-1][2]=y
                elif(res==3):
                    w=input('Pais: ')
                    p[x-1][3]=w
                elif(res==4):
                    a=input('Actores: ')
                    p[x-1][4]=a
                elif(res==5):
                    t=input('Hora Inicial: ')
                    p[x-1][5]=t
                elif(res==6):
                    u=input('Hora Final: ')
                    p[x-1][6]=u
 
    arch.close()
 
 
    for i  in range(len(p)):
        for j in range(len(p[i])-1):
            temp=p[i][j]+','
            arch.write(temp)
        temp=p[i][j]+'\n'
        arch.write(temp)
    arch.close()
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
Imágen de perfil de xve

Modificar un archivo de texto

Publicado por xve (1236 intervenciones) el 01/12/2014 07:46:02
Hola Daniel, por lo que veo, en tu código, escribes en el fichero en el bucle de la linea 65, pero en la linea 62 has cerrado el archivo... (arch.close())

tendrias que abrir nuevamente el archivo para escritura, no?
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