SoloCodigo
Programación Web y Scripting => Python => Mensaje iniciado por: elcarlosgr83 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...
-
Estudía sobre expresiones regulares.
En este post no se manejan expresiones regulares, pero te puede guíar la parte de modificación de los archivos
http://radicalpython.blogspot.com/2008/ ... squid.html (http://radicalpython.blogspot.com/2008/10/manejo-del-squid.html" onclick="window.open(this.href);return false;)
-
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()
#--------------------------------------------------------------------------------------------