O título do tópico já explica a finalidade do script a seguir, para utiliza-ló segue a sintaxe:
Código:
$ scriptname.py -f <arquivo de texto> -n <novo arquivo>
Para remover os itens duplicados da lista é utilizada a classe Set.
Exemplo de utilização: é passado ao script um arquivo denominado senhas.txt contendo o seguinte conteúdo:
Código:
teste1
teste2
teste3
teste4
teste2
teste3
teste5
O script se encarregará de criar um novo arquivo não contendo itens duplicados.
Código PHP:
#!/usr/bin/python
from subprocess import call
from sys import argv, exit, platform
import getopt
def use():
print "Usage: \n ", argv[0], "-f textlist.txt -n textlist2.txt"
exit(0)
def rfile(fi, md):
try:
with open(fi, md) as f:
fl = f.readlines()
f.close()
return fl
except IOError:
exit(" ! Erro ao abrir arquivo para leitura.")
def wfile(nf, s):
try:
with open(nf, 'w') as f:
f.write(s)
f.close()
except IOError:
exit(" ! Erro ao escrever em arquivo.")
return
def rmv(f1, f2):
lst = rfile(f1, 'r')
lst = list(set(lst))
wfile(f2, ''.join(lst))
print " + Processo realizado com sucesso."
return
def init():
file1 = None
file2 = None
call('reset' if platform == 'linux2' else 'cls')
try:
opts, args = getopt.getopt(argv[1:], "f:n:h")
except getopt.GetoptError:
print " ! Unknow option.\n + More details: %s -h"%(argv[0])
exit(2)
if len(opts) == 0 : use()
for a, b in opts:
if a == '-h':
use()
elif a == '-f':
file1 = b
elif a == '-n':
file2 = b
rmv(file1, file2)
if __name__ == '__main__':
init()
NoPaste: http://nopaste.me/paste/1252941213519c20bb40d90