Python lấy số dòng tệp

Ở đây chúng tôi đã sử dụng phương thức readlines[] để đọc dòng tệp văn bản một cách khôn ngoan. Chức năng liệt kê đã được sử dụng để ánh xạ các dòng tới số dòng tương ứng của chúng

Tìm nhiều lần lặp lại của cùng một chuỗi trong một tệp văn bản

Xem xét cùng một tệp văn bản được đề cập ở trên nếu chúng tôi muốn tìm tất cả các lần lặp lại của chuỗi [từ khóa] “Codespeedy” từ tệp văn bản, chúng tôi có thể thực hiện các thay đổi nhỏ ở trên hàm để lấy số dòng của các dòng chứa từ khóa/

def word_search[key, filename]:
    with open[filename] as file:  # opening the file using with to ensure it closes after the block of code is executed
        lines = file.readlines[]  # reading the lines of the files in order
    for number, line in enumerate[lines, 1]:  # using enumerate to map each line of the file to it's line_number
        if key in line:  # searching for the keyword in file
            print[f'{key} is in the line {number}']  # returning the line number if the keyword

keyword = input["Enter the string/keyword you wish to search:"]  # user input of the keyword
word_search[keyword,'Example.txt']

đầu ra

Enter the string/keyword you wish to search:
Codespeedy
Codespeedy is in the line 2
Codespeedy is in the line 3
Codespeedy is in the line 5

Tìm một số từ khóa/chuỗi khác nhau trong một tệp văn bản

Xem xét cùng một tệp văn bản được đề cập ở trên nếu chúng tôi muốn tìm một số từ khóa/chuỗi trong tệp văn bản, chúng tôi có thể sử dụng cùng chức năng được đề cập ở trên để lấy số dòng của các dòng có chứa các từ khóa/chuỗi này

def word_search[key, filename]:
    with open[filename] as file:  # opening the file using with to ensure it closes after the block of code is executed
        lines = file.readlines[]  # reading the lines of the files in order
    for number, line in enumerate[lines, 1]:  # using enumerate to map each line of the file to it's line_number
        if key in line:  # searching for the keyword in file
            print[f'{key} is in the line {number}']  # returning the line number

strings = input["Enter all the strings use to wish to search separated by space:\n"]
string_list = list[strings.split[]]
for item in string_list:
    word_search[item,'Example.txt']

đầu ra

Enter all the strings use to wish to search separated by space:
Codespeedy developers
Codespeedy is in the line 2
Codespeedy is in the line 3
Codespeedy is in the line 5
developers is in the line 3

Trong chương trình này, phương thức split[] đã được sử dụng để phân tách chuỗi đầu vào được phân tách bằng dấu cách thành các từ riêng lẻ

Sử dụng hàm liệt kê Python để lặp qua tệp văn bản hoặc tệp csv, sau đó, đối với mỗi dòng, hãy in số dòng và giá trị dòng. Đây là một đoạn đơn giản

with open [your_file_path, 'r'] as f:
    for i, line in enumerate [f]:
        print[f'Line number:{i+1}; Content: {line}'.strip[]] 

Tạo một tệp ví dụ

Giả sử rằng bạn có văn bản nhiều dòng sau được ghi vào tệp văn bản trong hệ điều hành của mình [Windows, Linux hoặc macOS]

Đây là tệp nhật ký của chúng tôi.
Nó nằm ở C. thư mục \MyWork.
Tệp này được tạo bằng Python.

Tìm số dòng và in nội dung dòng

Nhiệm vụ của chúng ta là in cho mỗi dòng của tệp số dòng và nội dung dòng

# import the path library - ships from Python 3.4 and onwards
from pathlib import Path
# replace with path of file in your environment
file_path = Path['C:\WorkDir\multi_line_file.txt']

# Verify that file exists
if file_path.is_file[]:
#Open file and loop through lines, print line number and content  
with open [file_path, 'r'] as f:
    for i, line in enumerate [f]:
        print[f'Line number:{i+1}; Content: {line}'.strip[]] 
else:
    print["The file doesn't exist."]

Điều này sẽ trả về kết quả sau

Line number:1; Content: This is our log file.
Line number:2; Content: It is located at the C:\MyWork directory.
Line number:3; Content: This file was built with Python.

In các dòng cụ thể từ một tệp

Tiếp theo, chúng tôi muốn tìm kiếm một chuỗi cụ thể trong nội dung tệp và chỉ in dòng cụ thể chứa chuỗi đó. Chúng tôi sẽ sử dụng mô-đun re [biểu thức chính quy] để dễ dàng phân tích cú pháp tệp

Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách lấy số dòng trong đó có từ đã cho từ tệp văn bản bằng python

Giả sử chúng tôi đã lấy một tệp văn bản có tên TextFile. txt bao gồm một số văn bản ngẫu nhiên. Chúng tôi sẽ trả về số dòng trong đó từ đã cho xuất hiện từ một tệp văn bản

Tệp văn bản. txt

Good Morning TutorialsPoint
This is TutorialsPoint sample File
Consisting of Specific
source codes in Python,Seaborn,Scala
Summary and Explanation
Welcome TutorialsPoint
Learn with a joy

Thuật toán [Các bước]

Sau đây là Thuật toán/các bước cần tuân thủ để thực hiện tác vụ mong muốn -

  • Tạo một biến để lưu đường dẫn của tệp văn bản

  • Tạo một biến [giữ số dòng] và khởi tạo giá trị của nó thành 1

  • Nhập từ dưới dạng đầu vào tĩnh/động và lưu trữ nó trong một biến

  • Sử dụng hàm open[][mở một tệp và kết quả là trả về một đối tượng tệp] để mở tệp văn bản ở chế độ chỉ đọc bằng cách chuyển tên tệp và chế độ làm đối số cho nó [Ở đây “r” biểu thị chỉ đọc

________số 8
  • Duyệt qua từng dòng của tệp văn bản bằng vòng lặp for

  • Sử dụng hàm split[] [tách một chuỗi thành một danh sách. Chúng ta có thể định nghĩa dấu phân cách;

  • Sử dụng câu lệnh điều kiện if và từ khóa “in”, kiểm tra xem từ đã cho có trong danh sách từ trên không

    Từ khóa in hoạt động theo hai cách -

The in keyword is used to determine whether a value exists in a sequence [list, range, string etc].

    Nó cũng được sử dụng để lặp qua một chuỗi trong vòng lặp for

  • In số dòng, nếu từ đã cho được tìm thấy trong dòng tương ứng đó

  • Tăng giá trị của số dòng lên 1

  • Đóng tệp đầu vào bằng hàm close[] [dùng để đóng tệp đã mở]

Thí dụ

Chương trình sau để xóa một dòng đã cho khỏi tệp văn bản và in nội dung tệp kết quả sau khi xóa dòng đó -

Enter the string/keyword you wish to search:
Codespeedy
Codespeedy is in the line 2
Codespeedy is in the line 3
Codespeedy is in the line 5
0

đầu ra

Khi thực thi, chương trình trên sẽ tạo đầu ra sau -

Enter the string/keyword you wish to search:
Codespeedy
Codespeedy is in the line 2
Codespeedy is in the line 3
Codespeedy is in the line 5
1

Chúng tôi đọc một tệp văn bản chứa một số văn bản ngẫu nhiên trong chương trình này. Chúng tôi đã tạo một biến để lưu trữ số dòng hiện tại và khởi tạo nó thành 1, số dòng bắt đầu. Chúng tôi tiến hành xem từng dòng của tệp văn bản, chia nhỏ từng dòng thành một danh sách các từ và kiểm tra xem từ đã cho có trong danh sách không. Nếu có, nó sẽ in ra dòng hiện tại Số. Đối với mỗi dòng, giá trị của số dòng được tăng thêm một

Chủ Đề