Python - Colores en python con salida a fichero

   
Vista:

Colores en python con salida a fichero

Publicado por Carlos (3 intervenciones) el 20/01/2015 11:42:52
Buenas!

Tengo un programa en python que imprime en consola letras a color pero cuando desvío la salida estándar a un fichero para abrir el resultado en un fichero .txt por ejemplo, los colores no los reconoce y salen algo parecido a esto: 63

Alguien sabe como puedo desviar la salida para que al abrir el documento me reconozca los colores?
Un saludo
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

Colores en python con salida a fichero

Publicado por xve (1229 intervenciones) el 20/01/2015 16:47:47
Hola Carlos, no se muy bien que es lo que envías al archivo, o como lo envías, pero en un archivo de texto, no podrás visualizar dichos colores...

Nos puedes mostrar el código? no entiendo muy bien lo que haces.
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

Colores en python con salida a fichero

Publicado por Carlos (3 intervenciones) el 20/01/2015 16:54:45
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
class colores:
    rojo = '\033[91m'
    verde = '\033[32m'
    aviso = '\033[93m'
    fin = '\033[0m'
 
 
i, j, bloqueA, bl, s, cont = 0, 32, 0, 0, 0, 0
 
if len(sys.argv) == 4:
    sectorF = int(sys.argv[3]) + 1
else:
    sectorF = 63
 
f = open(sys.argv[1], "rb")
ff = open(sys.argv[2], "rb")
 
data = f.read()
dataa = ff.read()
 
sector = data.encode('hex_codec')
sectorr = dataa.encode('hex_codec')
 
while bloqueA < 252:
    if not bloqueA % 4:
        print "---------------------------------------------------------------"
        print "Sector " + str(s) + '\n'
 
    index, resultat, resultatt, canvia = 0, "", "", 0
 
    for b in sector[i:j]:
        if b != sectorr[i:j][index]:
            modificat = colores.rojo + b + colores.fin
            modificatt = colores.verde + sectorr[i:j][index] + colores.fin
            canvia = 1
            cont += 1
        else:
            modificat = b
            modificatt = b
 
        if index % 2:
            resultat += modificat + " "
            resultatt += modificatt + " "
        else:
            resultat += modificat
            resultatt += modificatt
 
        index += 1
 
    if canvia:
        print "Bloque " + str(bl) + "\t" + resultat
        print "Bloque " + str(bl) + "\t" + resultatt
        print "\t\t-----------------------------------------------"
    else:
        print "Bloque " + str(bl) + "\t" + resultat
 
    i += 32
    j += 32
    bloqueA += 1
    bl += 1
 
    if not bloqueA % 4:
        s += 1
        print
 
    if s == sectorF:
        break
 
 
print "\nHan cambiado " + str(cont) + " valores\n"


Hace una comparación de dos ficheros en hexadecimal y cuando una linea cambia en algun valor imprime el valor antiguo en rojo y el nuevo en verde.

La idea era ejecutar: python programa.py fichero1 fichero2 > documento

Para poder leer "documento" fuera del terminal, pero me salen los valores que he comentado anteriormente
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