Danh sách xây dựng các dòng phù hợp - một số hương vị:
def lines_that_equal[line_to_match, fp]:
return [line for line in fp if line == line_to_match]
def lines_that_contain[string, fp]:
return [line for line in fp if string in line]
def lines_that_start_with[string, fp]:
return [line for line in fp if line.startswith[string]]
def lines_that_end_with[string, fp]:
return [line for line in fp if line.endswith[string]]
Build Trình tạo các dòng phù hợp [bộ nhớ hiệu quả]:
def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
In tất cả các dòng đối sánh [tìm tất cả các trận đấu trước, sau đó in chúng]:
with open["file.txt", "r"] as fp:
for line in lines_that_equal["my_string", fp]:
print line
In tất cả các dòng phù hợp [in chúng một cách lười biếng, như chúng ta tìm thấy chúng]
with open["file.txt", "r"] as fp:
for line in generate_lines_that_equal["my_string", fp]:
print line
Máy phát điện [được sản xuất bởi năng suất] là bạn bè của bạn, đặc biệt là với các tệp lớn không phù hợp với bộ nhớ.
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.
- 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
6 để 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]def generate_lines_that_equal[string, fp]: for line in fp: if line == string: yield line
- 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ả.
- Tìm kiếm một chuỗi trong nhiều tệp
- Tìm kiếm tệp cho một danh sách các chuỗi
Đôi khi bạn muốn tìm kiếm một tệp cho nhiều chuỗi. Ví dụ dưới đây cho thấy cách tìm kiếm tệp văn bản cho bất kỳ từ nào trong danh sách.
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.
- Hơn 15 bài tập và câu đố dành riêng cho chủ đề
Mỗi bài tập chứa 10 câu hỏi
- Mỗi bài kiểm tra chứa 12-15 mcq
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.
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
6 để 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]def generate_lines_that_equal[string, fp]: for line in fp: if line == string: yield line
- 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ả.
Tìm kiếm một chuỗi trong nhiều tệp
Chúng tôi sẽ thấy từng giải pháp từng cái một.
Cách tìm kiếm chuỗi trong tệp văn bản
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']
Output::
string exists in a file
Sử dụng phương thức Tệp def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
7 và Phương thức Lớp chuỗi def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
6 để tìm kiếm chuỗi trong tệp văn bản. Đây là các bước.
def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
Mở tệp ở chế độ đọc
- Mở tệp bằng cách đặt đường dẫn tệp và chế độ truy cập vào hàm
9. Chế độ truy cập chỉ định thao tác bạn muốn thực hiện trên tệp, chẳng hạn như đọc hoặc viết. Ví dụ, R là để đọc.def generate_lines_that_equal[string, fp]: for line in fp: if line == string: yield line
0with open["file.txt", "r"] as fp: for line in lines_that_equal["my_string", fp]: print line
- Đọc nội dung từ một tệp
- Sau khi mở, hãy đọc tất cả nội dung của một tệp bằng phương thức
7. Phương thức ____22 Trả về toàn bộ nội dung tệp ở định dạng chuỗi.def generate_lines_that_equal[string, fp]: for line in fp: if line == string: yield line
- Tìm kiếm một chuỗi trong một tệp
Sử dụng phương thức
6 của lớp STR để kiểm tra chuỗi hoặc từ đã cho trong kết quả được trả về bằng phương thức def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
7. Phương pháp def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
6. Phương thức Find [] sẽ trả về -1 nếu văn bản đã cho không có trong một tệp: In this example, we’ll search the string ‘laptop’ in a file, print its line along
with the line number.def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
# string to search in file
word = 'laptop'
with open[r'E:\demos\files_demos\account\sales.txt', 'r'] as fp:
# read all lines in a list
lines = fp.readlines[]
for line in lines:
# check if string present on a current line
if line.find[word] != -1:
print[word, 'string exists in file']
print['Line Number:', lines.index[line]]
print['Line:', line]
Output::
laptop string exists in a file line: laptop 10 15000 line number: 1
Dòng in và số dòng: You can also use the
with open["file.txt", "r"] as fp:
for line in generate_lines_that_equal["my_string", fp]:
print line
0 method instead of with open["file.txt", "r"] as fp:
for line in generate_lines_that_equal["my_string", fp]:
print line
1 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.Nếu bạn cần số dòng và dòng, hãy sử dụng phương thức with open["file.txt", "r"] as fp:
for line in lines_that_equal["my_string", fp]:
print line
6] thay vì phương thức def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
7. Sử dụng phương thức For Loop và with open["file.txt", "r"] as fp:
for line in lines_that_equal["my_string", fp]:
print line
8 để lặp lại từng dòng từ một tệp. Tiếp theo, trong mỗi lần lặp của một vòng lặp, hãy sử dụng điều kiện IF để kiểm tra xem một chuỗi có mặt trong một dòng hiện tại và in số dòng hiện tại và số dòng
with open["file.txt", "r"] as fp:
for line in lines_that_equal["my_string", fp]:
print line
def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
with open["file.txt", "r"] as fp:
for line in lines_that_equal["my_string", fp]:
print line
Ví dụ để tìm kiếm một chuỗi trong tệp văn bản
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.
- Tôi có một tệp ‘sales.txt, chứa dữ liệu bán hàng hàng tháng của các mặt hàng. Tôi muốn dữ liệu bán hàng của một mặt hàng cụ thể. Hãy cùng xem cách tìm kiếm dữ liệu mục cụ thể trong tệp bán hàng.
- Tìm kiếm tệp cho một chuỗi và in số dòng và dòng của nó
- 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.
Lưu ý:
6 không tải toàn bộ tệp trong bộ nhớ, vì vậy đây là một giải pháp hiệu quả.: The with open["file.txt", "r"] as fp:
for line in generate_lines_that_equal["my_string", fp]:
print line
with open["file.txt", "r"] as fp:
for line in generate_lines_that_equal["my_string", fp]:
print line
6 doesn’t load the entire file in memory, so this is an efficient solution.Example::
with open[r"E:\demos\files_demos\account\sales.txt", 'r'] as fp:
for l_no, line in enumerate[fp]:
# search string
if 'laptop' in line:
print['string found in a file']
print['Line Number:', l_no]
print['Line:', line]
# don't look for next lines
break
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ản
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.
Ngoài ra, bạn có thể sử dụng mô -đun MMAP để tìm một chuỗi trong một tệp lớn. Phương thức
with open["file.txt", "r"] as fp:
for line in generate_lines_that_equal["my_string", fp]:
print line
7 tạo đối tượng with open["file.txt", "r"] as fp:
for line in generate_lines_that_equal["my_string", fp]:
print line
8 kiểm tra tệp bên dưới thay vì đọc toàn bộ tệp trong bộ nhớ.Example::
def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
0Output::
def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
1Tì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.
- Liệt kê tất cả các tệp của một thư mục
- Đọc từng tệp một
- Tiếp theo, tìm kiếm một từ trong tệp đã cho. Nếu tìm thấy, hãy ngừng đọc các tập tin.
Example::
def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
2Output::
def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
3Tìm kiếm tệp cho một danh sách các chuỗi
Đôi khi bạn muốn tìm kiếm một tệp cho nhiều chuỗi. Ví dụ dưới đây cho thấy cách tìm kiếm tệp văn bản cho bất kỳ từ nào trong danh sách.
Example::
def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
4Output::
def generate_lines_that_equal[string, fp]:
for line in fp:
if line == string:
yield line
1Bà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.
- Hơn 15 bài tập và câu đố dành riêng cho chủ đềTopic-specific Exercises and Quizzes
- Mỗi bài tập chứa 10 câu hỏi
- Mỗi bài kiểm tra chứa 12-15 mcq