Hướng dẫn find index of string in text file python - tìm chỉ mục của chuỗi trong tệp văn bản python
Ví dụ, tôi có tệp và từ "kiểm tra". Tệp là một phần nhị phân nhưng có chuỗi "kiểm tra". Làm thế nào để tìm vị trí của từ (chỉ mục) trong tệp không tải vào bộ nhớ tệp này? Show
DOT NET 4.86312 Huy hiệu vàng52 Huy hiệu bạc97 Huy hiệu Đồng12 gold badges52 silver badges97 bronze badges Hỏi ngày 8 tháng 8 năm 2011 lúc 10:43Aug 8, 2011 at 10:43
3 Bạn không thể tìm thấy vị trí của một văn bản trong một tệp trừ khi bạn mở tệp. Nó giống như yêu cầu ai đó đọc một tờ báo mà không mở mắt. Để trả lời phần đầu tiên của câu hỏi của bạn, nó tương đối đơn giản.
Đã trả lời ngày 28 tháng 9 năm 2013 lúc 7:44Sep 28, 2013 at 7:44
Pankaj Parasharpankaj ParasharPankaj Parashar 9.3245 huy hiệu vàng34 Huy hiệu bạc47 Huy hiệu đồng5 gold badges34 silver badges47 bronze badges Bạn có thể sử dụng các tệp ánh xạ bộ nhớ và biểu thức thông thường.
Thí dụ
Đã trả lời ngày 8 tháng 8 năm 2011 lúc 11:10Aug 8, 2011 at 11:10
Nick Dandoulakisnick DandoulakisNick Dandoulakis 41.9K15 Huy hiệu vàng102 Huy hiệu bạc136 Huy hiệu đồng15 gold badges102 silver badges136 bronze badges 0 Thử cái này:
Đã trả lời ngày 28 tháng 9 năm 2013 lúc 6:06Sep 28, 2013 at 6:06
Bài tập và câu đố Python Các bài tập mã hóa miễn phí và các câu đố bao gồm các vấn đề cơ bản của Python, cấu trúc dữ liệu, phân tích dữ liệu, v.v.
Đôi khi bạn muốn tìm kiếm một chuỗi trong nhiều tệp có trong một thư mục. Sử dụng các bước dưới đây để tìm kiếm một văn bản trong tất cả các tệp của một thư mục. Liệt kê tất cả các tệp của một thư mụcĐọc từng tệp một
Trong hướng dẫn Python này, bạn sẽ học cách tìm kiếm một chuỗi trong một tệp văn bản. Ngoài ra, chúng tôi sẽ thấy cách tìm kiếm một chuỗi trong một tệp và in số dòng và dòng của nó.Sau khi đọc bài viết này, bạn sẽ học các trường hợp sau.
Output:: string exists in a file Nếu một tệp nhỏ, hãy đọc nó vào một chuỗi và sử dụng phương thức import re import mmap f = open('path/filename', 'r+b') mf = mmap.mmap(f.fileno(), 0) mf.seek(0) # reset file cursor m = re.search('pattern', mf) print m.start(), m.end() mf.close() f.close() 5 để kiểm tra xem một chuỗi hoặc từ có có trong một tệp không. (dễ dàng và nhanh hơn so với đọc và kiểm tra dòng trên mỗi dòng)Nếu một tệp lớn, hãy sử dụng MMAP để tìm kiếm một chuỗi trong một tệp. Chúng tôi không cần phải đọc toàn bộ tệp trong bộ nhớ, điều này sẽ làm cho bộ nhớ giải pháp của chúng tôi hiệu quả.
Ví dụ: Trong ví dụ này, chúng tôi sẽ tìm kiếm chuỗi ‘máy tính xách tay trong một tệp, in dòng của nó cùng với số dòng.: In this example, we’ll search the string ‘laptop’ in a file, print its line along with the line number.
Output:: laptop string exists in a file line: laptop 10 15000 line number: 1 Lưu ý: Bạn cũng có thể sử dụng phương thức 9 method instead of 0 to read a file line by line, stop when you’ve gotten to the lines you want. Using this technique, we don’t need to read the entire file.Cách hiệu quả để tìm kiếm chuỗi trong một tệp văn bản lớnTất cả các cách trên đọc toàn bộ tệp trong bộ nhớ. Nếu tệp lớn, đọc toàn bộ tệp trong bộ nhớ là không lý tưởng. Trong phần này, chúng tôi sẽ thấy cách nhanh nhất và tiết kiệm bộ nhớ nhất để tìm kiếm một chuỗi trong một tệp văn bản lớn.
Lưu ý: 5 doesn’t load the entire file in memory, so this is an efficient solution.Example::
Example:: string found in a file Line Number: 1 Line: laptop 10 15000 mmap để tìm kiếm một chuỗi trong tệp văn bảnTrong phần này, chúng tôi sẽ thấy cách nhanh nhất và tiết kiệm bộ nhớ nhất để tìm kiếm một chuỗi trong một tệp văn bản lớn. Mở tệp ở chế độ đọc Example::
Output:: 0Sử dụng cho vòng lặp với hàm def search_str(file_path, word): with open(file_path, 'r') as file: # read all content of a file content = file.read() # check if string present in a file if word in content: print('string exist in a file') else: print('string does not exist in a file') search_str(r'E:\demos\files_demos\account\sales.txt', 'laptop')1 để có được một dòng và số của nó. Hàm def search_str(file_path, word): with open(file_path, 'r') as file: # read all content of a file content = file.read() # check if string present in a file if word in content: print('string exist in a file') else: print('string does not exist in a file') search_str(r'E:\demos\files_demos\account\sales.txt', 'laptop')1 thêm một bộ đếm cho một điều khác nhau và trả về nó trong việc liệt kê đối tượng. Chuyển thanh trỏ tệp được trả về bởi hàm import re import mmap f = open('path/filename', 'r+b') mf = mmap.mmap(f.fileno(), 0) mf.seek(0) # reset file cursor m = re.search('pattern', mf) print m.start(), m.end() mf.close() f.close() 8 cho def search_str(file_path, word): with open(file_path, 'r') as file: # read all content of a file content = file.read() # check if string present in a file if word in content: print('string exist in a file') else: print('string does not exist in a file') search_str(r'E:\demos\files_demos\account\sales.txt', 'laptop')1.Chúng ta có thể sử dụng đối tượng liệt kê này với một vòng lặp để truy cập vào từng dòng và số dòng.
Example:: 1Output:: 2Tìm kiếm chuỗi trong nhiều tệpĐôi khi bạn muốn tìm kiếm một chuỗi trong nhiều tệp có trong một thư mục. Sử dụng các bước dưới đây để tìm kiếm một văn bản trong tất cả các tệp của một thư mục. Example:: 3Output:: 0Liệt kê tất cả các tệp của một thư mụcĐọc từng tệp một
|