Nhận chỉ mục của dòng trong tệp Python
Trong bài viết này, chúng ta sẽ thảo luận về cách tìm kiếm một hoặc nhiều chuỗi trong một tệp và nhận tất cả các dòng phù hợp cùng với số dòng của chúng Show
Kiểm tra nếu một chuỗi tồn tại trong một tập tinĐể kiểm tra xem một chuỗi đã cho có tồn tại trong tệp hay không, chúng tôi đã tạo một hàm, def check_if_string_in_file(file_name, string_to_search): """ Check if any line in the file contains given string """ # Open the file in read only mode with open(file_name, 'r') as read_obj: # Read all lines in the file one by one for line in read_obj: # For each line, check if line contains the string if string_to_search in line: return True return False Nó chấp nhận một đường dẫn tệp và một chuỗi làm đối số. Sau đó lặp lại từng dòng trong tệp một và kiểm tra từng dòng xem nó có chứa chuỗi đã cho hay không. Nếu dòng chứa chuỗi đã cho, thì trả về True. Trong khi nếu không có dòng nào trong tệp chứa chuỗi đã cho, thì nó sẽ trả về Sai Nội dung của tệp 'mẫu. txt' là, quảng cáo Hello this is a sample file It contains sample text Dummy Line A Dummy Line B Dummy Line C This is the end of file Hãy kiểm tra xem tệp này có chứa chuỗi 'là' hay không, # Check if string 'is' is found in file 'sample.txt' if check_if_string_in_file('sample.txt', 'is'): print('Yes, string found in file') else: print('String not found in file') đầu ra Đọc thêm
Yes, string found in file Vì tệp chứa 'is', do đó hàm check_if_string_in_file() trả về True Ở đây chúng ta biết tệp đó có chứa chuỗi đã cho hay không. Nhưng điều gì sẽ xảy ra nếu chúng ta muốn biết tất cả các lần xuất hiện chính xác của một chuỗi trong tệp như dòng và số dòng. Hãy xem làm thế nào để làm điều đó, Tìm kiếm một chuỗi trong tệp và nhận tất cả các dòng chứa chuỗi cùng với số dòngchúng tôi đã tạo một hàm, để lấy tất cả các dòng và số dòng chứa chuỗi đã cho, def search_string_in_file(file_name, string_to_search): """Search for the given string in file and return lines containing that string, along with line numbers""" line_number = 0 list_of_results = [] # Open the file in read only mode with open(file_name, 'r') as read_obj: # Read all lines in the file one by one for line in read_obj: # For each line, check if line contains the string line_number += 1 if string_to_search in line: # If yes, then add the line number & line as a tuple in the list list_of_results.append((line_number, line.rstrip())) # Return list of tuples containing line numbers and lines where string is found return list_of_results Nó chấp nhận một đường dẫn tệp và một chuỗi làm đối số. Cuối cùng, nó trả về một danh sách các bộ, trong đó mỗi bộ chứa số dòng và dòng, bao gồm chuỗi đã cho Nó đã hoạt động như thế nào? Thuật toán như sau,
Giả sử chúng ta có một tệp 'mẫu. txt’ và nội dung của nó là, Hello this is a sample file It contains sample text Dummy Line A Dummy Line B Dummy Line C This is the end of file Hãy lấy tất cả các dòng cùng với số dòng có chứa từ 'is', matched_lines = search_string_in_file('sample.txt', 'is') print('Total Matched lines : ', len(matched_lines)) for elem in matched_lines: print('Line Number = ', elem[0], ' :: Line = ', elem[1]) đầu ra Total Matched lines : 2 Line Number = 1 :: Line = Hello this is a sample file Line Number = 6 :: Line = This is the end of file Tổng cộng, có hai dòng, bao gồm chuỗi 'is' và hàm này trả về các dòng đó cùng với số dòng của chúng. Bây giờ, giả sử thay vì tìm kiếm một chuỗi, chúng tôi muốn tìm kiếm nhiều chuỗi trong một tệp. Hãy xem làm thế nào để làm điều đó, Tìm kiếm nhiều chuỗi trong một tệp và nhận các dòng chứa chuỗi cùng với số dòngĐể tìm kiếm nhiều chuỗi trong một tệp, chúng ta không thể sử dụng hàm đã tạo ở trên vì hàm đó sẽ mở và đóng tệp cho từng chuỗi. Do đó, chúng tôi đã tạo một chức năng riêng biệt, chức năng này sẽ mở một tệp một lần và sau đó tìm kiếm các dòng trong tệp chứa bất kỳ chuỗi i đã cho nào. e Bạn có thể lập chỉ mục các dòng trong Python không?Bạn có thể sử dụng số chỉ mục làm số dòng để trích xuất một tập hợp các dòng từ nó . Đây là cách đơn giản nhất để đọc một dòng cụ thể từ một tệp trong Python.
Làm cách nào để trích xuất các phần cụ thể của tệp văn bản bằng 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 |