Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để lấy dòng tệp đang mở hiện tại bằng Python?


Python không hỗ trợ điều này trực tiếp. Bạn có thể viết một lớp wrapper cho nó. Ví dụ:

class FileLineWrapper(object):
    def __init__(self, file):
        self.f = file
        self.curr_line = 0
    def close(self):
        return self.f.close()
    def readline(self):
        self.curr_line += 1
        return self.f.readline()
    # to allow using in 'with' statements
    def __enter__(self):
        return self
    def __exit__(self, exc_type, exc_val, exc_tb):
        self.close()

Và sử dụng đoạn mã trên làm:

f = FileLineWrapper(open("my_file", "r"))
f.readline()
print(f.line)

Điều này sẽ cho kết quả:1

Có những phương pháp khác để theo dõi số dòng nếu bạn chỉ sử dụng phương pháp dòng đọc. Ví dụ:

f=open("my_file", "r")
for line_no, line in enumerate(f):
    print line_no
f.close()