Bài 27. Đọc Và Ghi File - Python Dainganxanh

Việc đọc và ghi tệp chúng ta đã được tìm hiểu ở bài 8 chương I. Trong bài này sẽ trình bày chi tiết hơn một số vấn đề liên quan đến việc đọc và ghi tệp trong Python.

Để thao tác với tệp (đọc hoặc ghi dữ liệu) trong Python có nhiều cách khác nhau. Trong đó sử dụng câu lện with là đơn giản và hiệu quả, ngắn gọn và an toàn. Cú pháp như sau:

Copywithopen("tenfile.txt", 'mode')as tenbien: # Thực hiện các thao tác với file

Với câu lệnh trên file được mở để thao tác đồng thời sẽ tự động đóng file sau khi thao tác.

Cách khác, ta có thể dùng cấu khối lệnh sau:

Copytry: f =open("test.txt",'mode') # Thực hiện các thao tác với file finally: f.close()

Các chế độ mở file (mode) thường dùng như sau:

1. Đọc file

Ví dụ, Ta có file ‘vao.txt’ được lưu cùng thư mục với file Python.

Mở file để đọc ta dùng phương thức with open(‘tenfile’, ‘mode’) as tenbien. Ta có thể gán mode hoặc bỏ qua vì Python mặc định mở file là để đọc.

Đọc toàn bộ file

Copywithopen("vao.txt")as f: print(f.read())

Đọc từng dòng (1 dòng)

Copywithopen("vao.txt")as f: print(f.readline())

Đọc từng dòng (2 dòng)

Copywithopen("vao.txt")as f: print(f.readline()) print(f.readline())

Đọc từng dòng đến hết file

Copywithopen("vao.txt")as f: for i in f: print(i, end='')

Lưu ý: Tất cả dữ liệu đọc từ file text đều có kiểu string. Vì vậy nếu là các chữ số, khi đọc vào phải ép kiểu thành number mới có thể thực hiện các phép toán số học.

Chúng ta có thể thay đổi vị trí con trỏ tệp hiện tại bằng cách sử dụng phương thức seek (). Tương tự, phương thức tell () trả về vị trí hiện tại của con trỏ tệp (theo số byte).

Ví dụ:

Copywithopen('input.txt')as f: print(f.read()) print(f.tell()) f.seek(0) doc = f.read(5) print(doc) print(f.tell()) f.seek(13) print(f.read())

Giải thích:

Câu lệnh 1 để mở file đọc Câu lệnh 2 đọc toàn bộ file và in ra màn hình Câu lệnh 3: in ra màn hình thông báo vị trí con trỏ hiện thời (là vị trí cuối file) Câu lệnh 4: chuyển con trỏ về vị trí 0 (đầu file) Câu lệnh 5: đọc 5 ký tự (5 bytes) và gán vào biến doc Câu lệnh 6: in biến doc ra màn hình Câu lệnh 7: in ra màn hình thông báo vị trí con trỏ hiện thời Câu lệnh 8: Chuyển con trỏ đến vị trí 13 Câu lệnh 9: đọc đến cuối file và in ra màn hình

Output:

Learn Python together 21 Learn 5 together

2. Mở file để ghi

Mở file để ghi ta dùng phương thức with open(‘tenfile’, ‘mode’) as tenbien. Mode thường dùng là w (ghi đè) hoặc a (ghi tiếp).

Cả mode aw đều sẽ tạo file mới để ghi nếu file mở để ghi chưa tồn tại.

Ví dụ:

Copywithopen("ra.txt",'w')as f: f.write("Ghi dong chu nay vao file ra.txt")

Lưu ý: Để ghi dữ liệu vào file text ta chuyển về kiểu xâu trước khi ghi (nếu dữ liệu là số).

Chương trình sau sẽ báo lỗi:

Copya ="Ghi dong chu nay vao file ra.txt" b =994 withopen("ra.txt",'w')as f: f.write(a +'\n') f.write(b)

Ta sửa lỗi như sau:

Copya ="Ghi dong chu nay vao file ra.txt" b =994 withopen("ra.txt",'w')as f: f.write(a +'\n') f.write(str(b))

Đọc - Ghi file text unicode

Copywithopen('tên file', 'mode', encoding ='utf-8')as f: <lệnh đọc ghi>

Từ khóa » đọc File Text Trong Python