• Sábado 21 de Diciembre de 2024, 15:53

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - elcarlosgr83

Páginas: [1]
1
Python / Re: Escribir en una parte especifica de un archivo (tabular)
« en: Lunes 20 de Diciembre de 2010, 20:43 »
Ok, aun no lo he checado a fondo, pero parece que lo que propones es algo así como poner un identificador.
Lo que pasa es que una opción seria pasar el contenido del archivo a un string...

archivo = open('archivo.txt', 'r') # Leer el contenido
datos = archivo.read() # Asignarlo a una variable
NuevosDatos = str(datos) # convertirla a string
archivo.close() # cerrar el archivo
...
...
# bla, bla, bla Modificar datos
...
...
archivo.write(NuevosDatos) # Escribir los nuevos datos
archivo.close() # Cerrar el archivo

El problema con esto es que tendria que escribir completamente TODO el archivo (lo que quizas no sea muy bueno).
Pero bueno, a lo mejor es la unica forma, tratandose de archivos de texto no, ya que las cadenas en python son inmutables...
es decir, no hay una manera de modificar uno Bytes en el archivo???

ok, así lo hice...
#--------------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
class Columna:
    def __init__(self,nombre,cursor,digitos):
        self.nombre = nombre
        self.cursor = cursor
        self.digitos = digitos
class Archivo:
    def __init__(self,archivo,registroSize):
        self.archivo = archivo
        self.registroSize = registroSize
    def Leer(self):
        archivo = open(self.archivo,'r')
        texto = str(archivo.read())
        archivo.close()
        return texto
    def Registro(self,NumeroFila,Cursor,Bytes):
        NumeroFila = NumeroFila - 1
        archivo = open(self.archivo,'r')
        archivo.seek(self.registroSize * NumeroFila + Cursor)
        return archivo.read(Bytes)
    def CambiarRegistro(self,contenido,NumeroFila,Cursor,Bytes):
        texto = self.Leer()
        NumeroFila = NumeroFila - 1
        corte = (NumeroFila * self.registroSize + Cursor)
        NuevoTexto = texto[0:corte] +contenido+ texto[corte+Bytes:len(texto)]
        archivo = open(self.archivo,'w')
        archivo.write(NuevoTexto)
        archivo.close()
        return NuevoTexto

columna2 = Columna("Columna 2",3,2)
archivo = Archivo('archivo.txt',9)
print archivo.Leer()
print ""
print archivo.CambiarRegistro("XX", 2, columna2.cursor, columna2.digitos)
print ""
print archivo.Leer()
#--------------------------------------------------------------------------------------------

2
Python / Escribir en una parte especifica de un archivo (tabular)
« en: Lunes 20 de Diciembre de 2010, 19:28 »
Primero que nada, gracias por leer mi petición, sin mas preamulos hay va...
tengo el siguiente archivo de texto "archivo.txt"

AA AA AA
AA BB AA
AA AA AA

quiero que quede asi

AA AA AA
AA CC AA
AA AA AA

alguna idea???... gacias  :comp:
PD, lo intente con el metodo de writelines() pero me lo pone al final jejeje...

Páginas: [1]