Làm thế nào để bạn in dòng cuối cùng trong python?

Mọi thứ sẽ hoạt động miễn là bạn thay thế lệnh in bằng chức năng in, thủ công hoặc bằng 2to3

Thêm thời gian ngắn

# find the last line, change to a file you have
with open['test.txt'] as myfile:
    print [list[myfile][-1]]

1 0

Chia sẻ

Được chỉnh sửa 11 năm trước bởi TrustyTony bởi vì. không có

danholding đã nhận xét. rất hữu ích +1

snippsat 661 Áp phích chính

11 năm trước

fileHandle đã được thay thế bằng gì trong python 3. 1

FileHandle chỉ là một tên biến được sử dụng bởi vega
Bạn có thể sử dụng bất cứ tên nào bạn muốn
Đây là mã tương tự cho python 3

# Testet work for python 3
# read a text file as a list of lines
# find the last line, change to a file you have
fileHandle = open ['test3.txt']
lineList = fileHandle.readlines[]
fileHandle.close[]
print [lineList]
print ["The last line is:"]
print [lineList[len[lineList]-1]]
# or simply
print [lineList[-1]]

Hoặc nếu chúng ta sử dụng một tên khác ngoài FileHandle chỉ f

# Testet work for python 3
# read a text file as a list of lines
# find the last line, change to a file you have
f = open ['test3.txt']
lineList = f.readlines[]
f.close[]
print [lineList]
print ["The last line is:"]
print [lineList[len[lineList]-1]]
# or simply
print [lineList[-1]]

Poster over là một giải pháp hiện đại hơn của tony
với open[] tự động đóng đối tượng tệp, vì vậy không cần close[]

1 0

Chia sẻ

Đã chỉnh sửa 11 năm trước bởi snippsat vì. không có

danholding đã nhận xét. rất hữu ích +1

danholding 5 Áp phích đào tạo dành cho trẻ em

11 năm trước

cảm ơn vì sự giúp đỡ tất cả làm việc bây giờ. ]
tôi sẽ đánh dấu nó là đã giải quyết [nếu có thể]

0 0

Chia sẻ

snippsat 661 Áp phích chính

11 năm trước

Nếu bạn có câu hỏi, đừng sử dụng bài đăng 6 năm tuổi đã được đánh dấu là đã giải quyết
Tạo một bài đăng mới, chỉ cần sao chép một số mã từ bài đăng cũ hơn nếu bạn có câu hỏi về nó

0 0

Chia sẻ

Đã chỉnh sửa 11 năm trước bởi snippsat vì. không có

danholding 5 Áp phích đào tạo dành cho trẻ em

11 năm trước

tôi thường làm như vậy tôi tình cờ thấy bài đăng này và mặc dù tôi sẽ tìm hiểu Trình xử lý tệp là gì vì chưa bao giờ nghe nói về nó

Trong Python, có nhiều cách để đọc dòng cuối cùng của tệp. Một số đơn giản, thuận tiện hoặc hiệu quả và một số thì không

tập tin nhỏ

Đối với tệp nhỏ, bạn có thể tải toàn bộ tệp vào bộ nhớ và truy cập dòng cuối cùng. Đây là ví dụ

# Load the whole file into memory.
with open["myfile.txt", "r"] as file:            
    lines=file.readlines[]
print[lines[-1]]

tập tin lớn

Rõ ràng, đối với tệp lớn, bạn không thể tải toàn bộ tệp vào bộ nhớ. Nếu không, bạn có thể hết dung lượng bộ nhớ. Vì vậy, một cách tốt hơn là đọc qua từng dòng tệp và in dòng cuối cùng. Đây là một ví dụ

# Read line by line.
with open["myfile.txt", "r"] as file:
    for line in file:
        pass
print[line]

Cách hiệu quả

Cả hai giải pháp được hiển thị ở trên đều là những giải pháp đơn giản nhưng chúng không hiệu quả nhất. Cả hai đều phải lãng phí thời gian để đọc qua toàn bộ tệp. Một cách hiệu quả hơn là chuyển đến cuối tệp và đọc ngược lại để tìm một dòng mới. Đây là một ví dụ

import os
with open["myfile.txt", "rb"] as file:
    file.seek[-2, os.SEEK_END]
    while file.read[1] != b'\n':
        file.seek[-2, os.SEEK_CUR] 
    print[file.readline[].decode[]]

Để tìm kiếm cuối tệp, chúng tôi phải mở tệp ở chế độ nhị phân. Chúng tôi tìm kiếm 2 ký tự cuối cùng vì tệp có khả năng kết thúc bằng một dòng mới. Sau đó, tiếp tục đọc một byte cho đến khi tìm thấy ký tự xuống dòng. Và cuối cùng, chúng tôi sử dụng readline[] để đọc dòng cuối cùng và decode[] để chuyển đổi từ byte thành chuỗi

chủ đề liên quan

  • Python - Đọc tệp tại các dòng cụ thể
  • Python - Đọc vài dòng cuối cùng của tệp
  • Python - Đọc tệp một byte tại một thời điểm

con trăn

Thông tin về các Tác giả

Xuân Ngô là người sáng lập OpenWritings. net. Anh ấy hiện đang sống ở Montréal, Canada. Anh ấy thích viết về các chủ đề lập trình và mã nguồn mở

Chủ Đề