Ubuntu: como eu posso filtrar os emails e URL de um arquivo grande para um?

0

Eu tenho arquivos muito grandes armazenados em uma pasta. Os arquivos geralmente contêm e-mails e URLs, em cada linha. Diga por exemplo

[email protected]
example.com
ssdfghhg
www.example1.com
http://www.example2.com
https://example3.com
[email protected]

Eu quero saber como posso separar os e-mails em um arquivo e urls em um arquivo separado. Por favor, deixe-me saber como a versão do Ubuntu do python pode me ajudar a fazer isso?

output:  
email.txt
[email protected]
[email protected]
URL.txt
example.com
www.example1.com
http://www.example2.com
https://example3.com

Espero que o arquivo de saída seja UTF-8. apenas esperando que os URLs sejam sintaticamente um URL. Não há necessidade de verificar se o URL está presente ou não.

    
por Jaffer Wilson 11.02.2017 / 08:27

1 resposta

2

import sys
import glob  # to get all files in a directory
f1 = open('email.txt', 'w')     # Open in write mode
f2 = open('url.txt', 'w')       # Open in write mode

for i in glob.glob(sys.argv[1] + '/*'):
    with open(i) as f:
        for line in f:
            if '@' in line:     # email
                print(line.strip(), file=f1)
            elif '.' in line:   # url
                print(line.strip(), file=f2)
f1.close()
f2.close()

Isso funciona, pois seu texto não URL não contém . .

Salvar como file.py e executá-lo como

python3 file.py dirname
    
por Shreyash S Sarnayak 11.02.2017 / 08:55