Làm thế nào để bạn đọc 5 dòng đầu tiên trong python?

❮ Phương thức tệp

Thí dụ

Đọc dòng đầu tiên của tệp "demofile. txt"

f = open["tệp demo. txt", "r"]
in [f. dòng đọc[]]

Chạy ví dụ »

Định nghĩa và cách sử dụng

Phương thức readline[] trả về một dòng từ tệp

Bạn cũng có thể chỉ định bao nhiêu byte từ dòng để trả về, bằng cách sử dụng tham số kích thước

cú pháp

Giá trị tham số

Tham sốMô tảkích thướcTùy chọn. Số byte từ dòng trả về. Mặc định -1, có nghĩa là toàn bộ dòng

Thêm ví dụ

Thí dụ

Gọi readline[] hai lần để trả về cả dòng đầu tiên và dòng thứ hai

f = open["tệp demo. txt", "r"]
in [f. dòng đọc[]]
in [f. dòng đọc[]]

Chạy ví dụ »

Thí dụ

Chỉ trả lại năm byte đầu tiên từ dòng đầu tiên

f = open["tệp demo. txt", "r"]
in [f. đọc [5]]

Chạy ví dụ »

❮ Phương thức tệp


Giả sử tệp cần đọc lớn đáng kể [tính bằng GB] và bạn không muốn đọc toàn bộ tệp trong bộ nhớ cùng một lúc mà chỉ muốn nhảy và đọc các dòng #5 và #120. Để đọc các dòng cụ thể từ một tệp văn bản, hãy làm theo các bước sau

  1. Mở tệp ở Chế độ đọc

    Để mở một file đường dẫn file pass và chế độ truy cập

    ['Fifth line', 'Eighth Line']
    3 đến chức năng
    ['Fifth line', 'Eighth Line']
    4. 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 ghi
    Ví dụ,
    ['Fifth line', 'Eighth Line']
    5 để đọc một tập tin

  2. Tạo một danh sách để lưu trữ số dòng

    Tạo một danh sách với số lượng của mỗi dòng trong một tệp văn bản để đọc
    Ví dụ,

    ['Fifth line', 'Eighth Line']
    6. Ở đây chúng ta đang đọc dòng 4 và 7

  3. Tạo một danh sách để lưu trữ các dòng

    Sau khi đọc dòng 4 và 7, chúng tôi sẽ lưu trữ kết quả đó trong một biến danh sách

  4. Sử dụng vòng lặp for với hàm enumerate[] để lấy một dòng và số của nó

    Hàm thêm bộ đếm vào một lần lặp và trả về nó trong đối tượng liệt kê. Truyền con trỏ tệp được hàm

    ['Fifth line', 'Eighth Line']
    4 trả về cho hàm
    ['Fifth line', 'Eighth Line']
    8
    Chúng ta có thể sử dụng đối tượng liệt kê này với vòng lặp for để truy cập số dòng
    Ghi chú.
    ['Fifth line', 'Eighth Line']
    9 không tải toàn bộ tệp vào bộ nhớ, vì vậy đây là một giải pháp hiệu quả

  5. Đọc tệp theo số dòng

    Sử dụng điều kiện if trong mỗi lần lặp của vòng lặp để kiểm tra số dòng. Nếu khớp thì lưu dòng đó vào danh sách

Thí dụ. Đọc các dòng cụ thể từ tệp theo số dòng

Đoạn mã sau cho biết cách đọc tệp văn bản theo số dòng trong Python. Xem tệp đính kèm được sử dụng trong ví dụ và hình ảnh hiển thị nội dung của tệp để tham khảo

Trong ví dụ này, chúng tôi đang đọc dòng số 4 và 7 và lưu trữ nó trong một biến danh sách

tập tin văn bản

with open[r"E:\demos\files\read_demo.txt", 'r'] as fp:
    # lines to read
    line_numbers = [4, 7]
    # To store lines
    lines = []
    for i, line in enumerate[fp]:
        # read line 4 and 7
        if i in line_numbers:
            lines.append[line.strip[]]
        elif i > 7:
            # don't read after line 7 to save time
            break
print[lines]

đầu ra

['Fifth line', 'Eighth Line']

mô-đun linecache Đọc dòng từ tệp theo số dòng

Trong phần này, chúng ta sẽ xem cách đọc tệp theo số dòng bằng mô-đun linecache

Linecache của Python là một cách khác được tối ưu hóa hiệu suất để chuyển đến một dòng cụ thể trong tệp văn bản. Giả sử nếu bạn có một tệp văn bản lớn, thì linecache là lựa chọn chính xác

Mô-đun linecache cho phép một người lấy bất kỳ dòng nào từ tệp nguồn Python, trong khi cố gắng tối ưu hóa nội bộ, sử dụng bộ đệm, trường hợp phổ biến khi nhiều dòng được đọc từ một tệp. Điều này được mô-đun truy ngược sử dụng để truy xuất các dòng nguồn để đưa vào truy nguyên được định dạng

Tài liệu Python

Sử dụng phương pháp

linecache.getline[filename, lineno, module_globals=None]
0 để đọc một dòng cụ thể từ một tệp

linecache.getline[filename, lineno, module_globals=None]
  • Nhận dòng
    linecache.getline[filename, lineno, module_globals=None]
    1 từ một tệp có tên
    linecache.getline[filename, lineno, module_globals=None]
    2. Hàm này sẽ không trả về bất kỳ lỗi nào nếu dòng không có trong tệp thay vào đó, nó sẽ trả về một chuỗi trống
  • Thay đổi
    linecache.getline[filename, lineno, module_globals=None]
    1 thành số dòng bạn muốn và bạn đã sẵn sàng

Thí dụ

import linecache

# read fifth line
line = linecache.getline[r"E:\demos\files\read_demo.txt", 5]
print[line]

đầu ra

Fifth line

Ghi chú. Linache đọc toàn bộ tệp trong bộ nhớ. Vì vậy, nếu truy cập ngẫu nhiên vào số dòng quan trọng hơn hiệu suất, thì hãy sử dụng linache

Nếu bạn muốn đọc nhiều hơn một số dòng từ một tệp bằng linecache, hãy sử dụng ví dụ bên dưới

import linecache

line_numbers = [2, 4]
lines = []
for i in line_numbers:
    x = linecache.getline[r"E:\demos\files\read_demo.txt", i].strip[]
    lines.append[x]
print[lines]

Sử dụng
linecache.getline[filename, lineno, module_globals=None]
4 để đọc phạm vi dòng từ Tệp

Nếu kích thước tệp của bạn nhỏ và bạn không quan tâm đến hiệu suất, thì phương pháp này phù hợp nhất

Đọc tệp bằng Python nhanh nếu kích thước tệp tính bằng vài MB

Phương thức

linecache.getline[filename, lineno, module_globals=None]
4 đọc tất cả các dòng từ một tệp và lưu trữ nó trong một danh sách. 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. Chúng tôi đọc toàn bộ tệp bằng cách này và sau đó chọn các dòng cụ thể từ tệp theo yêu cầu của chúng tôi

Sử dụng

linecache.getline[filename, lineno, module_globals=None]
6 để đọc phạm vi dòng

  • bắt đầu là số dòng bắt đầu
  • kết thúc là số dòng cuối cùng
  • Để đọc từ dòng số 3 đến 5, hãy sử dụng
    linecache.getline[filename, lineno, module_globals=None]
    7
  • Để đọc một dòng, hãy sử dụng
    linecache.getline[filename, lineno, module_globals=None]
    8. cái này sẽ đọc dòng thứ ba

Thí dụ. Đọc dòng từ 3 đến 5

with open[r"E:\demos\files\read_demo.txt", 'r'] as fp:
    # read line number 3 to 5
    # index starts from 0
    x = fp.readlines[][2:5]
    print[x]

Thí dụ. Đọc dòng 8

with open[r"E:\demos\files\read_demo.txt", 'r'] as fp:
    # read line 8
    x = fp.readlines[][7]
    print[x]

Bạn cũng có thể sử dụng phương pháp

linecache.getline[filename, lineno, module_globals=None]
9 để đọc từng dòng một tệp, dừng lại khi bạn đã đến dòng mình muốn. Sử dụng kỹ thuật này, chúng tôi không cần phải đọc toàn bộ tệp

ví dụ 3

lines = [2, 5]
result = []
i = 0

with open["read_demo.txt", "r+"] as fp:
    # access each line
    while True:
        line = fp.readline[]
        # check line number
        if i in lines:
            result.append[line.strip[]]
        # line number greater than needed exit the loop
        # lines[-1] give last item from list
        if i > lines[-1]:
            break;
        i = i + 1
print[result]

Trình tạo để đọc các dòng từ một tệp theo số dòng

Một giải pháp nhanh và gọn có thể là biểu thức trình tạo để đọc tệp bằng cách sử dụng số dòng

Nếu số lượng dòng được trả về từ một tệp lớn, bạn nên sử dụng trình tạo

Giải pháp này chấp nhận con trỏ tệp và số dòng được đọc trả về một đối tượng trình tạo để lặp lại bằng vòng lặp để nhận từng dòng

Chủ Đề