Đọc dữ liệu từ tệp
Khi đọc một tệp văn bản, luồng byte lần lượt đi vào đầu vào chương trình, vì vậy tệp cung cấp quyền truy cập tuần tự vào dữ liệu. Nghĩa là, nếu chúng ta cần đọc giá trị thứ 10 từ tệp, trước tiên chúng ta phải đọc giá trị 9 trước đó.
Việc đọc một dòng của tệp cho phép phương thức
readline()
thực thi. Phương thức này được gọi trên một biến tệp.
Vây = mở("input.txt")
s = Fin.readline()
Có thể áp dụng nhiều phương thức khác nhau cho chuỗi đã đọc, tương tự như các phương thức được sử dụng khi đọc từ bàn phím (split()
, map()
, v.v.). Ví dụ: nếu có hai số được phân tách bằng dấu cách trong một dòng của tệp thì bạn có thể đếm chúng như sau:
Vây = mở("input.txt")
s = Fin.readline().split() # chia dòng trên khoảng trắng s = ["2007", "2021"]
a, b = map(int, s) # áp dụng phương thức int() cho tất cả các phần tử của danh sách s,
# tức là chuyển chuỗi ký tự thành số
# a, b = int(s[0], s[1]) # dòng này giống dòng trên
# a, b = [int(x) for x in s] # giống như trình tạo
Phương thức read()
đọc toàn bộ nội dung của tệp và trả về một chuỗi có thể chứa các ký tự '\n
'. Nếu một tham số số nguyên được truyền cho phương thức read()
, thì số lượng ký tự được chỉ định sẽ không được đọc nhiều hơn. Ví dụ: bạn có thể đọc tệp theo từng byte bằng cách sử dụng phương thức read(1)
.
.
Khi một tệp được mở, con trỏ xác định vị trí hiện tại trong tệp được đặt ở đầu tệp và khi đọc, nó sẽ được dịch chuyển đến vị trí sau khi đọc dữ liệu. Khi viết, con trỏ được di chuyển đến vị trí tự do tiếp theo.