Categorías: Python | Programación |
Un pequeño script que compara cada linea de dos archivos y dice cuales estan en A y no en B
En terminos matemaricos si A y B son un par de conjuntos y sus elementos son cada una de sus lineas entonces el resultado de este comando es B complemento.
Funcionamiento
Si tuvieramos los archivos
A
1 2 3 4 5
B
1 5
y ejecutaramos el comando ./comparar.py A B el resultado seria:
2 3 4
Implementacion en python
1 #!/usr/bin/python
2
3 "A little script that compare each line of two files and say wich are in file1 but not in file2"
4
5 import sys
6
7 if len(sys.argv)!=3:
8 print sys.argv[0], "A little script that compare each line of two file and say wich are in file1 but not in file2"
9 print "Usage:", sys.argv[0], "file1 file2"
10 sys.exit(1)
11
12 f=open(sys.argv[1], 'r');
13 f2=open(sys.argv[2], 'r');
14 lines=f.readlines()
15 lines2=f2.readlines()
16
17 found=False
18 for line in lines:
19 for line2 in lines2:
20 if line==line2:
21 found=True
22 break
23
24 if found==False:
25 sys.stdout.write(line);
26 else:
27 found=False
Implementacion en shell
En la shell de unix esto se podria hacer con el comando
cat A B | sort | uniq -u
