如何将电子邮件和 URL 从一个大文件过滤为一个?

如何将电子邮件和 URL 从一个大文件过滤为一个?

我在一个文件夹中存储了非常大的文件。这些文件通常每行包含电子邮件和 URL。
例如

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

我想知道如何将电子邮件分离到一个文件中,将 URL 分离到另一个文件中。请告诉我 Ubuntu 版 Python 如何帮助我做到这一点?

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

我期望输出文件为 UTF-8。只是期望 URL 在语法上应该是 URL。无需验证 URL 是否存在。

答案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

相关内容