Làm cách nào để trích xuất dữ liệu từ python?

Trích xuất văn bản từ một tệp là một nhiệm vụ phổ biến trong viết kịch bản và lập trình và Python làm cho nó trở nên dễ dàng. Trong hướng dẫn này, chúng ta sẽ thảo luận về một số cách đơn giản để trích xuất văn bản từ tệp bằng ngôn ngữ lập trình Python 3

  • Đả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 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

Đảm bảo bạn đang sử dụng Python 3

Trong hướng dẫn này, chúng tôi sẽ sử dụng Python phiên bản 3. Hầu hết các hệ thống đều được cài đặt sẵn Python 2. 7. Trong khi Python 2. 7 được sử dụng trong mã kế thừa, Python 3 là hiện tại và tương lai của ngôn ngữ Python. Trừ khi bạn có lý do cụ thể để viết hoặc hỗ trợ Python 2, chúng tôi khuyên bạn nên làm việc với Python 3

Đối với Microsoft Windows, có thể tải xuống Python 3 từ trang web chính thức của Python. Khi cài đặt, hãy đảm bảo cả hai tùy chọn "Cài đặt trình khởi chạy cho tất cả người dùng" và "Thêm Python vào PATH" đều được chọn, như trong hình bên dưới

Làm cách nào để trích xuất dữ liệu từ python?

Trên Linux, bạn có thể cài đặt Python 3 với trình quản lý gói của mình. Chẳng hạn, trên Debian hoặc Ubuntu, bạn có thể cài đặt nó bằng lệnh sau

sudo apt-get update && sudo apt-get install python3

Đối với macOS, có thể tải xuống trình cài đặt Python 3 từ python. org, như được liên kết ở trên. Nếu bạn đang sử dụng trình quản lý gói Homebrew, nó cũng có thể được cài đặt bằng cách mở cửa sổ đầu cuối (Ứng dụng → Tiện ích) và chạy lệnh này

brew install python3

Chạy Python

Trên Linux và macOS, lệnh chạy trình thông dịch Python 3 là python3. Trên Windows, nếu bạn đã cài đặt trình khởi chạy, lệnh là py. Các lệnh trên trang này sử dụng python3;

Chạy Python không có tùy chọn khởi động trình thông dịch tương tác. Để biết thêm thông tin về cách sử dụng trình thông dịch, hãy xem Tổng quan về Python. sử dụng trình thông dịch Python. Nếu vô tình vào trình thông dịch, bạn có thể thoát ra bằng lệnh exit() hoặc quit()

Chạy Python với tên tệp sẽ diễn giải chương trình python đó. Ví dụ

python3 program.py

chạy chương trình chứa trong chương trình tập tin. py

Được rồi, làm thế nào chúng ta có thể sử dụng Python để trích xuất văn bản từ tệp văn bản?

Đọc dữ liệu từ tệp văn bản

Đầu tiên, hãy đọc một tệp văn bản. Giả sử chúng ta đang làm việc với một tệp có tên lorem. txt, chứa các dòng từ văn bản ví dụ Lorem Ipsum

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc fringilla arcu congue metus aliquam mollis.
Mauris nec maximus purus. Maecenas sit amet pretium tellus.
Quisque at dignissim lacus.

Ghi chú

Trong tất cả các ví dụ tiếp theo, chúng tôi làm việc với bốn dòng văn bản có trong tệp này. Sao chép và dán văn bản la tinh ở trên vào một tệp văn bản và lưu nó dưới dạng lorem. txt, vì vậy bạn có thể chạy mã ví dụ bằng cách sử dụng tệp này làm đầu vào

Một chương trình Python có thể đọc tệp văn bản bằng hàm open() tích hợp. Ví dụ chương trình Python 3 dưới đây mở lorem. txt để đọc ở chế độ văn bản, đọc nội dung vào một biến chuỗi có tên là nội dung, đóng tệp và in dữ liệu

myfile = open("lorem.txt", "rt") # open lorem.txt for reading text
contents = myfile.read()         # read the entire file to string
myfile.close()                   # close the file
print(contents)                  # print string contents

Ở đây, myfile là tên chúng tôi đặt cho đối tượng tệp của mình

Tham số "rt" trong hàm open() có nghĩa là "chúng tôi đang mở tệp này để đọc dữ liệu văn bản"

Dấu thăng ("#") có nghĩa là mọi thứ trên dòng đó đều là nhận xét và nó bị trình thông dịch Python bỏ qua

Nếu bạn lưu chương trình này trong một tệp có tên là read. py, bạn có thể chạy nó bằng lệnh sau

python3 read.py

Lệnh trên xuất ra nội dung của lorem. txt

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc fringilla arcu congue metus aliquam mollis.
Mauris nec maximus purus. Maecenas sit amet pretium tellus.
Quisque at dignissim lacus.

Sử dụng "với mở"

Điều quan trọng là đóng các tệp đang mở của bạn càng sớm càng tốt. mở tệp, thực hiện thao tác của bạn và đóng tệp. Đừng để nó mở trong thời gian dài

Khi bạn đang làm việc với các tệp, bạn nên sử dụng lệnh mở. dưới dạng câu lệnh ghép. Đó là cách sạch nhất để mở tệp, thao tác trên tệp và đóng tệp, tất cả trong một khối mã dễ đọc. Tệp tự động đóng khi khối mã hoàn thành

Sử dụng với mở. như, chúng ta có thể viết lại chương trình của mình để trông như thế này

with open ('lorem.txt', 'rt') as myfile:  # Open lorem.txt for reading text
    contents = myfile.read()              # Read the entire file to a string
print(contents)                           # Print the string

Ghi chú

Thụt đầu dòng rất quan trọng trong Python. Các chương trình Python sử dụng khoảng trắng ở đầu dòng để xác định phạm vi, chẳng hạn như một khối mã. Chúng tôi khuyên bạn nên sử dụng bốn dấu cách cho mỗi cấp độ thụt đầu dòng và bạn nên sử dụng dấu cách thay vì tab. Trong các ví dụ sau, hãy đảm bảo rằng mã của bạn được thụt lề chính xác như được trình bày ở đây

Thí dụ

Lưu chương trình như đã đọc. py và thực hiện nó

python3 read.py

đầu ra

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc fringilla arcu congue metus aliquam mollis.
Mauris nec maximus purus. Maecenas sit amet pretium tellus.
Quisque at dignissim lacus.

Đọc tệp văn bản theo từng dòng

Trong các ví dụ cho đến nay, chúng tôi đã đọc toàn bộ tệp cùng một lúc. Đọc một tệp đầy đủ không phải là vấn đề lớn với các tệp nhỏ, nhưng nói chung, đó không phải là một ý tưởng hay. Đối với một điều, nếu tệp của bạn lớn hơn dung lượng bộ nhớ khả dụng, bạn sẽ gặp lỗi

Trong hầu hết mọi trường hợp, tốt hơn hết bạn nên đọc từng dòng một trong tệp văn bản

Trong Python, đối tượng tệp là một trình vòng lặp. Trình vòng lặp là một loại đối tượng Python hoạt động theo những cách nhất định khi được vận hành lặp đi lặp lại. Chẳng hạn, bạn có thể sử dụng vòng lặp for để thao tác lặp lại trên một đối tượng tệp và mỗi lần thực hiện cùng một thao tác, bạn sẽ nhận được một kết quả khác hoặc "tiếp theo"

Thí dụ

Đối với tệp văn bản, đối tượng tệp lặp lại một dòng văn bản tại một thời điểm. Nó coi một dòng văn bản là một "đơn vị" dữ liệu, vì vậy chúng ta có thể sử dụng lệnh for. trong câu lệnh vòng lặp để lặp lại một dòng tại một thời điểm

brew install python3
0

đầu ra

brew install python3
1

Lưu ý rằng chúng ta sẽ có thêm một dấu ngắt dòng ("dòng mới") sau mỗi dòng. Đó là bởi vì hai dòng mới đang được in. Cái đầu tiên là dòng mới ở cuối mỗi dòng của tệp văn bản của chúng tôi. Dòng mới thứ hai xảy ra bởi vì, theo mặc định, print() thêm một dấu ngắt dòng của chính nó vào cuối bất kỳ nội dung nào bạn đã yêu cầu in

Hãy lưu trữ các dòng văn bản của chúng ta trong một biến — cụ thể là biến danh sách — để chúng ta có thể xem xét nó kỹ hơn

Lưu trữ dữ liệu văn bản trong một biến

Trong Python, danh sách tương tự nhưng không giống với mảng trong C hoặc Java. Danh sách Python chứa dữ liệu được lập chỉ mục, có độ dài và loại khác nhau

Thí dụ

brew install python3
2

Đầu ra của chương trình này hơi khác một chút. Thay vì in nội dung của danh sách, chương trình này in đối tượng danh sách của chúng ta, giống như thế này

đầu ra

brew install python3
3

Ở đây, chúng ta thấy nội dung thô của danh sách. Trong đối tượng thô của nó từ, một danh sách được biểu diễn dưới dạng danh sách được phân cách bằng dấu phẩy. Ở đây, mỗi phần tử được biểu diễn dưới dạng một chuỗi và mỗi dòng mới được biểu diễn dưới dạng chuỗi ký tự thoát của nó, \n

Giống như một mảng C hoặc Java, các phần tử danh sách được truy cập bằng cách chỉ định một số chỉ mục sau tên biến, trong ngoặc đơn. Số chỉ mục bắt đầu từ 0 - nói cách khác, phần tử thứ n của danh sách có chỉ mục số n-1

Ghi chú

Nếu bạn đang thắc mắc tại sao các số chỉ mục bắt đầu bằng 0 thay vì một, thì bạn không đơn độc đâu. Các nhà khoa học máy tính đã tranh luận về tính hữu ích của các hệ thống đánh số dựa trên số 0 trong quá khứ. Năm 1982, Edsger Dijkstra đưa ra ý kiến ​​của mình về chủ đề này, giải thích tại sao đánh số dựa trên số 0 là cách tốt nhất để lập chỉ mục dữ liệu trong khoa học máy tính. Bạn có thể tự đọc bản ghi nhớ — anh ấy đưa ra lập luận thuyết phục

Thí dụ

Chúng ta có thể in phần tử đầu tiên của dòng bằng cách chỉ định số chỉ mục 0, nằm trong dấu ngoặc sau tên của danh sách

brew install python3
4

đầu ra

brew install python3
5

Thí dụ

Hoặc dòng thứ ba, bằng cách chỉ định chỉ mục số 2

brew install python3
6

đầu ra

brew install python3
7

Nhưng nếu chúng tôi cố truy cập vào một chỉ mục không có giá trị, chúng tôi sẽ gặp lỗi

Thí dụ

brew install python3
8

đầu ra

brew install python3
9

Thí dụ

Một đối tượng danh sách là một trình vòng lặp, vì vậy để in mọi phần tử của danh sách, chúng ta có thể lặp lại nó với lệnh for. Trong

python3 program.py
0

đầu ra

brew install python3
1

Nhưng chúng tôi vẫn đang nhận thêm dòng mới. Mỗi dòng trong tệp văn bản của chúng tôi kết thúc bằng ký tự xuống dòng ('\n'), đang được in. Ngoài ra, sau khi in từng dòng, print() sẽ thêm một dòng mới của riêng nó, trừ khi bạn yêu cầu nó làm khác đi

Chúng ta có thể thay đổi hành vi mặc định này bằng cách chỉ định tham số kết thúc trong lệnh gọi print()

python3 program.py
2

Bằng cách đặt kết thúc thành một chuỗi trống (hai dấu nháy đơn, không có khoảng trắng), chúng tôi yêu cầu print() không in gì ở cuối dòng, thay vì ký tự xuống dòng

Thí dụ

Chương trình sửa đổi của chúng tôi trông như thế này

python3 program.py
3

đầu ra

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc fringilla arcu congue metus aliquam mollis.
Mauris nec maximus purus. Maecenas sit amet pretium tellus.
Quisque at dignissim lacus.

Các dòng mới bạn thấy ở đây thực sự có trong tệp; . Chúng tôi muốn loại bỏ những thứ này, vì vậy chúng tôi không phải lo lắng về chúng trong khi xử lý tệp

Làm thế nào để loại bỏ dòng mới

Để loại bỏ hoàn toàn các dòng mới, chúng ta có thể loại bỏ chúng. Tách một chuỗi là loại bỏ một hoặc nhiều ký tự, thường là khoảng trắng, khỏi đầu hoặc cuối chuỗi

Mẹo

Quá trình này đôi khi còn được gọi là "cắt tỉa. "

Các đối tượng chuỗi Python 3 có một phương thức gọi là rstrip(), loại bỏ các ký tự từ phía bên phải của chuỗi. Ngôn ngữ tiếng Anh đọc từ trái sang phải, do đó, xóa từ bên phải sẽ xóa các ký tự ở cuối

Nếu biến được đặt tên là mystring, chúng ta có thể bỏ phần bên phải của nó bằng mystring. rstrip(ký tự), trong đó ký tự là một chuỗi ký tự cần tách. Ví dụ: "123abc". rstrip("bc") trả về 123a

Mẹo

Khi bạn đại diện cho một chuỗi trong chương trình của mình với nội dung bằng chữ của nó, nó được gọi là chuỗi ký tự. Trong Python (như trong hầu hết các ngôn ngữ lập trình), các ký tự chuỗi luôn được trích dẫn — được đặt ở hai bên bởi dấu ngoặc đơn (') hoặc dấu ngoặc kép ("). Trong Python, dấu ngoặc đơn và dấu ngoặc kép là tương đương nhau; . Theo truyền thống, việc biểu diễn một chuỗi mà con người có thể đọc được (chẳng hạn như Xin chào) trong dấu ngoặc kép ("Xin chào"). Nếu bạn đang đại diện cho một ký tự đơn (chẳng hạn như b) hoặc một ký tự đặc biệt đơn lẻ chẳng hạn như ký tự xuống dòng (\n), thì theo truyền thống, bạn nên sử dụng dấu nháy đơn ('b', '\n'). Để biết thêm thông tin về cách sử dụng chuỗi trong Python, bạn có thể đọc tài liệu về chuỗi trong Python

Chuỗi tuyên bố. rstrip('\n') sẽ loại bỏ ký tự xuống dòng từ phía bên phải của chuỗi. Phiên bản sau của chương trình của chúng tôi loại bỏ các dòng mới khi mỗi dòng được đọc từ tệp văn bản

python3 program.py
5

Văn bản hiện được lưu trữ trong một biến danh sách, vì vậy có thể truy cập từng dòng riêng lẻ theo số chỉ mục. Các dòng mới đã bị loại bỏ, vì vậy chúng tôi không phải lo lắng về chúng. Chúng tôi luôn có thể đặt chúng trở lại sau nếu chúng tôi xây dựng lại tệp và ghi nó vào đĩa

Bây giờ, hãy tìm kiếm các dòng trong danh sách cho một chuỗi con cụ thể

Tìm kiếm văn bản cho một chuỗi con

Giả sử chúng ta muốn định vị mọi lần xuất hiện của một cụm từ nhất định hoặc thậm chí là một chữ cái. Chẳng hạn, có lẽ chúng ta cần biết mọi chữ "e" ở đâu. Chúng ta có thể thực hiện điều này bằng cách sử dụng phương thức find() của chuỗi

Danh sách lưu trữ từng dòng văn bản của chúng tôi dưới dạng đối tượng chuỗi. Tất cả các đối tượng chuỗi đều có một phương thức, find(), định vị vị trí xuất hiện đầu tiên của một chuỗi con trong chuỗi

Hãy sử dụng phương thức find() để tìm kiếm chữ "e" trong dòng đầu tiên của tệp văn bản của chúng ta, được lưu trữ trong danh sách mylines. Phần tử đầu tiên của mylines là một đối tượng chuỗi chứa dòng đầu tiên của tệp văn bản. Đối tượng chuỗi này có phương thức find()

Trong dấu ngoặc đơn của find(), chúng tôi chỉ định các tham số. Tham số bắt buộc đầu tiên và duy nhất là chuỗi cần tìm kiếm, "e". Tuyên bố mylines[0]. find("e") yêu cầu trình thông dịch tìm kiếm về phía trước, bắt đầu từ đầu chuỗi, mỗi lần một ký tự, cho đến khi tìm thấy chữ "e. " Khi tìm thấy một, nó sẽ ngừng tìm kiếm và trả về số chỉ mục chứa "e" đó. Nếu đến cuối chuỗi, nó trả về -1 để cho biết không tìm thấy gì

Thí dụ

python3 program.py
6

đầu ra

3

Giá trị trả về "3" cho chúng ta biết chữ "e" là ký tự thứ tư, chữ "e" trong "Lorem". (Hãy nhớ rằng, chỉ số này dựa trên số không. chỉ số 0 là ký tự đầu tiên, 1 là ký tự thứ hai, v.v. )

Phương thức find() nhận hai tham số tùy chọn, bổ sung. chỉ mục bắt đầu và chỉ mục dừng, cho biết vị trí trong chuỗi tìm kiếm sẽ bắt đầu và kết thúc. Chẳng hạn, chuỗi. find("abc", 10, 20) tìm kiếm chuỗi con "abc", nhưng chỉ từ ký tự thứ 11 đến ký tự thứ 21. Nếu điểm dừng không được chỉ định, find() bắt đầu ở đầu chỉ mục và dừng ở cuối chuỗi

Thí dụ

Chẳng hạn, câu lệnh sau tìm kiếm "e" trong mylines[0], bắt đầu từ ký tự thứ năm

python3 program.py
7

đầu ra

python3 program.py
8

Nói cách khác, bắt đầu từ ký tự thứ 5 trong dòng[0], chữ "e" đầu tiên nằm ở chỉ mục 24 (chữ "e" trong "nec")

Thí dụ

Để bắt đầu tìm kiếm ở chỉ mục 10 và dừng ở chỉ mục 30

python3 program.py
9

đầu ra

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc fringilla arcu congue metus aliquam mollis.
Mauris nec maximus purus. Maecenas sit amet pretium tellus.
Quisque at dignissim lacus.
0

(Chữ "e" đầu tiên trong "Maecenas")

Nếu find() không tìm thấy chuỗi con trong phạm vi tìm kiếm, nó sẽ trả về số -1, biểu thị lỗi

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc fringilla arcu congue metus aliquam mollis.
Mauris nec maximus purus. Maecenas sit amet pretium tellus.
Quisque at dignissim lacus.
1

đầu ra

-1

Không có sự xuất hiện của "e" giữa các chỉ số 25 và 30

Tìm tất cả các lần xuất hiện của một chuỗi con

Nhưng điều gì sẽ xảy ra nếu chúng ta muốn định vị mọi lần xuất hiện của một chuỗi con, không chỉ lần xuất hiện đầu tiên mà chúng ta gặp phải?

Trong ví dụ này, chúng ta sẽ sử dụng vòng lặp while để liên tục tìm chữ "e". Khi tìm thấy một sự cố, chúng tôi gọi lại tìm, bắt đầu từ một vị trí mới trong chuỗi. Cụ thể, vị trí của lần xuất hiện cuối cùng, cộng với độ dài của chuỗi (để chúng tôi có thể di chuyển về phía trước qua lần xuất hiện cuối cùng). Khi find trả về -1 hoặc chỉ mục bắt đầu vượt quá độ dài của chuỗi, chúng tôi dừng

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc fringilla arcu congue metus aliquam mollis.
Mauris nec maximus purus. Maecenas sit amet pretium tellus.
Quisque at dignissim lacus.
2

đầu ra

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc fringilla arcu congue metus aliquam mollis.
Mauris nec maximus purus. Maecenas sit amet pretium tellus.
Quisque at dignissim lacus.
3

Kết hợp các biểu thức chính quy

Đối với các tìm kiếm phức tạp, hãy sử dụng các biểu thức thông thường

Mô-đun biểu thức chính quy Python được gọi là re. Để sử dụng nó trong chương trình của bạn, hãy nhập mô-đun trước khi sử dụng

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc fringilla arcu congue metus aliquam mollis.
Mauris nec maximus purus. Maecenas sit amet pretium tellus.
Quisque at dignissim lacus.
4

Mô-đun re thực hiện các biểu thức chính quy bằng cách biên dịch một mẫu tìm kiếm thành một đối tượng mẫu. Các phương thức của đối tượng này sau đó có thể được sử dụng để thực hiện các thao tác so khớp

Ví dụ: giả sử bạn muốn tìm kiếm bất kỳ từ nào trong tài liệu bắt đầu bằng chữ d và kết thúc bằng chữ r. Chúng ta có thể thực hiện việc này bằng biểu thức chính quy "\bd\w*r\b". Điều đó có nghĩa là gì?

chuỗi ký tựý nghĩa\bMột ranh giới từ khớp với một chuỗi trống (bất kỳ thứ gì, kể cả không có gì cả), nhưng chỉ khi nó xuất hiện trước hoặc sau một ký tự không phải từ. "Ký tự Word" là các chữ số từ 0 đến 9, chữ thường và chữ in hoa hoặc dấu gạch dưới ("_"). d Chữ thường d. \w*\w đại diện cho bất kỳ ký tự từ nào và * là một bộ định lượng có nghĩa là "không hoặc nhiều ký tự trước đó. " Vì vậy, \w* sẽ khớp với 0 hoặc nhiều ký tự Word. rChữ thường r. \bRanh giới từ

Vì vậy, biểu thức chính quy này sẽ khớp với bất kỳ chuỗi nào có thể được mô tả là "một ranh giới từ, sau đó là chữ thường 'd', sau đó là 0 hoặc nhiều ký tự từ, sau đó là chữ thường 'r', sau đó là ranh giới từ. " Các chuỗi được mô tả theo cách này bao gồm các từ kẻ hủy diệt, dour và bác sĩ và từ viết tắt dr

Để sử dụng biểu thức chính quy này trong các hoạt động tìm kiếm Python, trước tiên chúng tôi biên dịch nó thành một đối tượng mẫu. Chẳng hạn, câu lệnh Python sau đây tạo một đối tượng mẫu có tên là mẫu mà chúng ta có thể sử dụng để thực hiện tìm kiếm bằng cách sử dụng biểu thức chính quy đó

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc fringilla arcu congue metus aliquam mollis.
Mauris nec maximus purus. Maecenas sit amet pretium tellus.
Quisque at dignissim lacus.
5

Ghi chú

Chữ r trước chuỗi của chúng ta trong câu lệnh trên là quan trọng. Nó yêu cầu Python diễn giải chuỗi của chúng ta dưới dạng chuỗi thô, chính xác như chúng ta đã nhập. Nếu chúng ta không thêm r vào đầu chuỗi, Python sẽ diễn giải các chuỗi thoát như \b theo những cách khác. Bất cứ khi nào bạn cần Python diễn giải các chuỗi của bạn theo nghĩa đen, hãy chỉ định nó dưới dạng một chuỗi thô bằng cách thêm tiền tố vào r

Bây giờ chúng ta có thể sử dụng các phương thức của đối tượng mẫu, chẳng hạn như search(), để tìm kiếm một chuỗi cho biểu thức chính quy đã biên dịch, tìm kiếm kết quả khớp. Nếu tìm thấy, nó sẽ trả về một kết quả đặc biệt được gọi là đối tượng khớp. Mặt khác, nó trả về Không, một hằng số Python tích hợp được sử dụng như giá trị boolean "false"

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc fringilla arcu congue metus aliquam mollis.
Mauris nec maximus purus. Maecenas sit amet pretium tellus.
Quisque at dignissim lacus.
6

đầu ra

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc fringilla arcu congue metus aliquam mollis.
Mauris nec maximus purus. Maecenas sit amet pretium tellus.
Quisque at dignissim lacus.
7

Để thực hiện tìm kiếm không phân biệt chữ hoa chữ thường, bạn có thể chỉ định hằng số đặc biệt re. IGNORECASE trong bước biên dịch

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc fringilla arcu congue metus aliquam mollis.
Mauris nec maximus purus. Maecenas sit amet pretium tellus.
Quisque at dignissim lacus.
8

đầu ra

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc fringilla arcu congue metus aliquam mollis.
Mauris nec maximus purus. Maecenas sit amet pretium tellus.
Quisque at dignissim lacus.
7

Để tất cả chúng cùng nhau

Vì vậy, bây giờ chúng tôi biết cách mở tệp, đọc các dòng trong danh sách và định vị chuỗi con trong bất kỳ phần tử danh sách đã cho nào. Hãy sử dụng kiến ​​thức này để xây dựng một số chương trình ví dụ

In tất cả các dòng chứa chuỗi con

Chương trình dưới đây đọc từng dòng tệp nhật ký. Nếu dòng chứa từ "lỗi", nó sẽ được thêm vào danh sách có tên là lỗi. Nếu không, nó được bỏ qua. Phương thức chuỗi Lower() chuyển đổi tất cả các chuỗi thành chữ thường cho mục đích so sánh, làm cho tìm kiếm không phân biệt chữ hoa chữ thường mà không làm thay đổi chuỗi gốc

Lưu ý rằng phương thức find() được gọi trực tiếp trên kết quả của phương thức Lower(); . Ngoài ra, lưu ý rằng trong câu lệnh print(), chúng ta xây dựng một chuỗi đầu ra bằng cách nối một số chuỗi với toán tử +

myfile = open("lorem.txt", "rt") # open lorem.txt for reading text
contents = myfile.read()         # read the entire file to string
myfile.close()                   # close the file
print(contents)                  # print string contents
0

Đầu vào (được lưu trữ trong logfile. txt)

myfile = open("lorem.txt", "rt") # open lorem.txt for reading text
contents = myfile.read()         # read the entire file to string
myfile.close()                   # close the file
print(contents)                  # print string contents
1

đầu ra

myfile = open("lorem.txt", "rt") # open lorem.txt for reading text
contents = myfile.read()         # read the entire file to string
myfile.close()                   # close the file
print(contents)                  # print string contents
2

Trích xuất tất cả các dòng chứa chuỗi con, sử dụng regex

Chương trình dưới đây tương tự như chương trình trên, nhưng sử dụng mô-đun biểu thức chính quy lại. Các lỗi và số dòng được lưu trữ dưới dạng bộ dữ liệu, e. g. , (linenum, dòng). Bộ dữ liệu được tạo bởi các dấu ngoặc đơn kèm theo bổ sung trong các lỗi. câu lệnh append(). Các phần tử của bộ dữ liệu được tham chiếu tương tự như một danh sách, với chỉ mục dựa trên số 0 trong ngoặc đơn. Như đã xây dựng ở đây, err[0] là một dòng số và err[1] là dòng liên kết chứa lỗi

myfile = open("lorem.txt", "rt") # open lorem.txt for reading text
contents = myfile.read()         # read the entire file to string
myfile.close()                   # close the file
print(contents)                  # print string contents
3

đầu ra

myfile = open("lorem.txt", "rt") # open lorem.txt for reading text
contents = myfile.read()         # read the entire file to string
myfile.close()                   # close the file
print(contents)                  # print string contents
4

Trích xuất tất cả các dòng có chứa một số điện thoại

Chương trình dưới đây in bất kỳ dòng nào của tệp văn bản, thông tin. txt, chứa số điện thoại của Hoa Kỳ hoặc quốc tế. Nó thực hiện điều này với biểu thức chính quy "(\+\d{1,2})?[\s. -]?\d{3}[\s. -]?\d{4}". Regex này khớp với các ký hiệu số điện thoại sau

  • 123-456-7890
  • (123) 456-7890
  • 123 456 7890
  • 123. 456. 7890
  • +91 (123) 456-7890
myfile = open("lorem.txt", "rt") # open lorem.txt for reading text
contents = myfile.read()         # read the entire file to string
myfile.close()                   # close the file
print(contents)                  # print string contents
5

đầu ra

myfile = open("lorem.txt", "rt") # open lorem.txt for reading text
contents = myfile.read()         # read the entire file to string
myfile.close()                   # close the file
print(contents)                  # print string contents
6

Tìm kiếm một từ điển cho các từ

Chương trình dưới đây tìm kiếm trong từ điển bất kỳ từ nào bắt đầu bằng h và kết thúc bằng pe. Đối với đầu vào, nó sử dụng một tệp từ điển có trong nhiều hệ thống Unix, /usr/share/dict/words

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

Làm cách nào để trích xuất dữ liệu từ tệp CSV bằng Python? .
Nhập thư viện csv. nhập csv
Mở tệp CSV. Các. .
Sử dụng tệp csv. đối tượng reader để đọc tệp CSV. csvreader = csv. người đọc (tập tin)
Trích xuất tên trường
Trích xuất các hàng/bản ghi
Đóng tệp

Khai thác Python là gì?

LGTM trích xuất thông tin từ mỗi cơ sở mã Python và tạo cơ sở dữ liệu sẵn sàng để truy vấn . Đầu tiên, bước python_setup dành riêng cho Python thiết lập trình thông dịch Python và môi trường ảo, sau đó quá trình trích xuất được thực hiện theo bước chỉ mục. Trong chủ đề này. Chuẩn bị khai thác.

Cạo dữ liệu trong Python là gì?

Tìm kiếm trang web là quá trình thu thập và phân tích dữ liệu thô từ trang Web và cộng đồng Python đã tạo ra một số trang web khá mạnh mẽ . Internet có lẽ là nguồn thông tin lớn nhất trên hành tinh.

Bạn có thể cạo dữ liệu từ PDF Python không?

Với sự trợ giúp của thư viện python, chúng tôi có thể tiết kiệm thời gian và tiền bạc bằng cách tự động hóa quy trình trích xuất dữ liệu từ tệp PDF và chuyển đổi dữ liệu phi cấu trúc thành dữ liệu bảng .