Ubuntu: как я могу отфильтровать электронные письма и URL от большого файла до одного?

У меня есть очень большие файлы, хранившие в папке. Файлы обычно содержат электронные письма и URL на каждой строке.
Скажите, например,

gg@example.com
example.com
ssdfghhg
www.example1.com
http://www.example2.com
https://example3.com
better@example123.com

Я бледный, чтобы знать, как я могу разделить электронные письма в одном файле и URL в отдельном файле. Любезно сообщите мне, как версия Ubuntu Python может помочь мне делающий это?

output:  
email.txt
gg@example.com
better@example123.com
URL.txt
example.com
www.example1.com
http://www.example2.com
https://example3.com

Я ожидаю, что выходной файл будет UTF-8. просто ожиданием URL должен быть синтаксически URL. Никакая потребность проверить, является ли URL существующим или нет.

0
задан 11 February 2017 в 07:35

1 ответ

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()

Это работает, учитывая, что Ваш текст не-URL не содержит . в нем.

Сохраните его как file.py и выполненный это как

python3 file.py dirname
2
ответ дан 7 November 2019 в 00:15

Другие вопросы по тегам:

Похожие вопросы: