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à
- 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 - 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 - 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
['info@geeksforgeeks.com', 'geeksforgeeks@rocks.xyz', 'love@gfg.in']0
['info@geeksforgeeks.com', 'geeksforgeeks@rocks.xyz', 'love@gfg.in']1
['info@geeksforgeeks.com', 'geeksforgeeks@rocks.xyz', 'love@gfg.in']2
['info@geeksforgeeks.com', 'geeksforgeeks@rocks.xyz', 'love@gfg.in']3
['info@geeksforgeeks.com', 'geeksforgeeks@rocks.xyz', 'love@gfg.in']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
['info@geeksforgeeks.com', 'geeksforgeeks@rocks.xyz', 'love@gfg.in']6
['info@geeksforgeeks.com', 'geeksforgeeks@rocks.xyz', 'love@gfg.in']7
['info@geeksforgeeks.com', 'geeksforgeeks@rocks.xyz', 'love@gfg.in']8
['info@geeksforgeeks.com', 'geeksforgeeks@rocks.xyz', 'love@gfg.in']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
['info@geeksforgeeks.com', 'geeksforgeeks@rocks.xyz', 'love@gfg.in']8
['info@geeksforgeeks.com', 'geeksforgeeks@rocks.xyz', 'love@gfg.in']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
['info@geeksforgeeks.com', 'geeksforgeeks@rocks.xyz', 'love@gfg.in']
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