Làm cách nào để trích xuất địa chỉ email từ tệp văn bản trong Python?

Xin chào, Trong hướng dẫn này, chúng ta sẽ xem xét cách bạn có thể tìm nạp hoặc lấy tất cả ID email có trong tệp văn bản bằng ngôn ngữ lập trình Python. Đôi khi có những tình huống như vậy mà bạn cần tìm ra tất cả các id email có trong tài liệu; . Vì vậy, hãy đi thẳng vào vấn đề và xem chúng ta có thể làm điều đó như thế nào

Chương trình Python để tìm nạp hoặc lấy tất cả id email từ tệp văn bản

Để làm điều này, chúng tôi cần tối thiểu ba thứ trong giỏ của mình, đó là

  1. Gói urllib của Python. Bạn có thể cài đặt nó dưới dạng
    import urllib.request 
    import re 
    openfile = open('text.txt', 'r')
    with openfile as input:
        print (re.findall(r'\b([a-z0-9-_.][email protected][a-z0-9-_.]+)\b', f_input.read(), re.I))
    
    5
  2. Gói biểu thức chính quy của Python. Bạn có thể cài đặt nó dưới dạng
    import urllib.request 
    import re 
    openfile = open('text.txt', 'r')
    with openfile as input:
        print (re.findall(r'\b([a-z0-9-_.][email protected][a-z0-9-_.]+)\b', f_input.read(), re.I))
    
    6
  3. Và cuối cùng nhưng không phải là danh sách bạn cần một tài liệu văn bản

Vì bạn đã thỏa mãn cả ba yêu cầu này, hãy tiếp tục và xem cách chúng tôi có thể đọc id email từ tài liệu văn bản

Đầu tiên nhập hai gói đã cài đặt dưới dạng

import urllib.request 
import re

Ghi urllib. yêu cầu là gói Python để tìm nạp URL. Điều này có nghĩa là nó sẽ tương tác với internet. Nhưng nếu bạn muốn thực hiện những điều này trên tệp cục bộ được lưu trữ trên máy tính của mình thì bạn không cần urllib. yêu cầu.
Một gói Python khác mà bạn vừa nhập lại là một chuỗi văn bản cho phép bạn tạo các mẫu giúp so khớp, định vị và quản lý văn bản.

Hãy chuyển sang mã ngay bây giờ

import urllib.request 
import re 
openfile = open('text.txt', 'r')
with openfile as input:
    print (re.findall(r'\b([a-z0-9-_.][email protected][a-z0-9-_.]+)\b', f_input.read(), re.I))

Hiểu mã

  • Nhập các gói yêu cầu
  • Bây giờ vì bạn cần đọc nội dung bên trong một tài liệu văn bản, trước tiên bạn cần mở nó. Để mở tài liệu văn bản, chúng tôi đã nhờ sự trợ giúp của hàm open() trong Python. Hàm open() có hai tham số i. e. tên tệp và chế độ.  
  • Bước tiếp theo là chỉ cần tạo một mẫu nhận dạng id email có trong tài liệu văn bản. Đối với điều này, chúng tôi đã tạo một mẫu là r’\b([a-z0-9-_. ][email được bảo vệ][a-z0-9-_. ]+)\b’ sẽ tìm tất cả các kết quả phù hợp có trong tài liệu văn bản cho chúng tôi bằng cách sử dụng hàm findall(). Trong đó [0-9] Trả về giá trị khớp cho bất kỳ chữ số nào trong khoảng từ 0 đến 9, [a-z] Trả về giá trị khớp cho bất kỳ ký tự nào theo thứ tự bảng chữ cái giữa a và z, chữ thường HOẶC chữ hoa và phần còn lại là các ký tự đặc biệt trả về giá trị khớp nếu chúng là
  • Cuối cùng, chúng ta cần yêu cầu hàm findall() đọc tất cả các kết quả phù hợp hiện có và in nó

Tệp văn bản đầu vào mà chúng tôi đã sử dụng trong hướng dẫn này trông giống như sau

MãSpeedy. Nơi bạn tìm thấy giải pháp trong mã hóa và lập trình. Liên hệ với chúng tôi tại [email được bảo vệ]

đầu ra

[email protected]

 

Cảm ơn bạn đã học với CodeSpeedy. Vui lòng bình luận về những nghi ngờ của bạn trong phần bình luận và đảm bảo rằng bạn xem các giải pháp lập trình tuyệt vời hơn bằng Python tại Thông tin thêm về Python tại CodeSpeedy

Sau khi nhập mô-đun cần thiết, chúng tôi sẽ gọi phương thức findall() được xác định trong mô-đun re để tìm tất cả các chuỗi khớp với biểu thức regex được truyền dưới dạng tham số

Biểu thức regex có thể được chia thành ba phần

1. r”[A-Za-z0-9_%+-. ]+”

Biểu thức này tìm kiếm một chuỗi ký tự liên tục bao gồm tất cả các bảng chữ cái viết hoa được xác định bởi A-Z, bảng chữ cái viết thường a-z, tất cả các chữ số 0-9 và các ký tự đặc biệt như _%+-. . '+' được sử dụng để nối biểu thức chính quy thứ hai vào biểu thức chính quy thứ nhất

2. r”@[A-Za-z0-9. -]+”

Biểu thức này tìm kiếm một chuỗi ký tự liên tục bao gồm tất cả các chữ cái viết hoa được xác định bởi A-Z, các chữ cái viết thường từ a-z, tất cả các chữ số 0-9 và các ký tự đặc biệt như. _. '+' được sử dụng để nối biểu thức chính quy thứ hai vào biểu thức chính quy thứ nhất

3. r”\. [A-Za-z]{2,5}”

Biểu thức này tìm kiếm một chuỗi ký tự liên tục bao gồm tất cả các bảng chữ cái viết hoa được xác định bởi A-Z, các bảng chữ cái viết thường từ a-z sao cho kích thước của chuỗi ký tự liên tục này nằm trong khoảng từ 2-5 bao gồm cả hai

ví dụ 1. Trích xuất các email hợp lệ từ một chuỗi

Python3




import urllib.request 
import re 
openfile = open('text.txt', 'r')
with openfile as input:
    print (re.findall(r'\b([a-z0-9-_.][email protected][a-z0-9-_.]+)\b', f_input.read(), re.I))
7

import urllib.request 
import re 
openfile = open('text.txt', 'r')
with openfile as input:
    print (re.findall(r'\b([a-z0-9-_.][email protected][a-z0-9-_.]+)\b', f_input.read(), re.I))
8
import urllib.request 
import re 
openfile = open('text.txt', 'r')
with openfile as input:
    print (re.findall(r'\b([a-z0-9-_.][email protected][a-z0-9-_.]+)\b', f_input.read(), re.I))
9
[email protected]
0

[email protected]
1
[email protected]
2
[email protected]
3

[email protected]
4

 

['[email protected]', '[email protected]', '[email protected]']
0

['[email protected]', '[email protected]', '[email protected]']
1
['[email protected]', '[email protected]', '[email protected]']
2

 

['[email protected]', '[email protected]', '[email protected]']
3

['[email protected]', '[email protected]', '[email protected]']
4
import urllib.request 
import re 
openfile = open('text.txt', 'r')
with openfile as input:
    print (re.findall(r'\b([a-z0-9-_.][email protected][a-z0-9-_.]+)\b', f_input.read(), re.I))
9
['[email protected]', '[email protected]', '[email protected]']
6
['[email protected]', '[email protected]', '[email protected]']
7

['[email protected]', '[email protected]', '[email protected]']
8
['[email protected]', '[email protected]', '[email protected]']
9
import urllib.request 
import re 
openfile = open('text.txt', 'r')
with openfile as input:
    print (re.findall(r'\b([a-z0-9-_.][email protected][a-z0-9-_.]+)\b', f_input.read(), re.I))
70

['[email protected]', '[email protected]', '[email protected]']
8
['[email protected]', '[email protected]', '[email protected]']
9
import urllib.request 
import re 
openfile = open('text.txt', 'r')
with openfile as input:
    print (re.findall(r'\b([a-z0-9-_.][email protected][a-z0-9-_.]+)\b', f_input.read(), re.I))
73
import urllib.request 
import re 
openfile = open('text.txt', 'r')
with openfile as input:
    print (re.findall(r'\b([a-z0-9-_.][email protected][a-z0-9-_.]+)\b', f_input.read(), re.I))
74

 

import urllib.request 
import re 
openfile = open('text.txt', 'r')
with openfile as input:
    print (re.findall(r'\b([a-z0-9-_.][email protected][a-z0-9-_.]+)\b', f_input.read(), re.I))
75

import urllib.request 
import re 
openfile = open('text.txt', 'r')
with openfile as input:
    print (re.findall(r'\b([a-z0-9-_.][email protected][a-z0-9-_.]+)\b', f_input.read(), re.I))
76
import urllib.request 
import re 
openfile = open('text.txt', 'r')
with openfile as input:
    print (re.findall(r'\b([a-z0-9-_.][email protected][a-z0-9-_.]+)\b', f_input.read(), re.I))
77

đầu ra

['[email protected]', '[email protected]', '[email protected]']

ví dụ 2. Trích xuất các email hợp lệ từ một tệp văn bản

Sử dụng hàm open(), chúng tôi mở tệp được yêu cầu ở chế độ “r”, chỉ ở chế độ đọc. Và đối với mỗi dòng, chúng tôi tách dòng để loại bỏ khoảng trắng và xử lý chúng tương tự như ví dụ đầu tiên

Làm cách nào để trích xuất dữ liệu cụ thể từ tệp văn bản trong Python?

Cách trích xuất các phần cụ thể của tệp văn bản bằng Python .
Đảm bảo bạn đang sử dụng Python 3
Đọc dữ liệu từ tệp văn bản
Sử dụng "với mở"
Đọc các tệp văn bản theo từng dòng
Lưu trữ dữ liệu văn bản trong một biến
Tìm kiếm văn bản cho một chuỗi con
Kết hợp các biểu thức chính quy
Để tất cả chúng cùng nhau

Làm cách nào để trích xuất URL từ văn bản trong Python?

Trích xuất URL từ tệp văn bản bằng cách sử dụng biểu thức chính quy . Biểu thức tìm nạp văn bản ở bất cứ nơi nào nó khớp với mẫu. Chỉ mô-đun re được sử dụng cho mục đích này.

Làm cách nào để trích xuất địa chỉ email từ trang web bằng Python?

Hướng dẫn này sẽ giúp bạn nhận địa chỉ email từ bất kỳ trang web nào vào bất kỳ lúc nào mà không bị giới hạn. .
Bước 1. Nhập mô-đun. Chúng tôi nhập sáu mô-đun cho dự án này. .
Bước 2. Khởi tạo biến. .
Bước 3. bắt đầu cạo. .
Bước 4. Xuất email sang tệp CSV