Tin Học PyThon 11 - Bài 21: Thao Tác Với Tệp

Chào các bạn học sinh, nhằm cung cấp những kiến thức hiệu quả về tin học Python cho các bạn giúp cho các em học sinh dễ dàng tiếp cận nhanh ngôn ngữ Python để vận dụng trong chương trình Tin Học. Trong bài viết này mình sẽ hướng dẫn cho bạn chi tiết Tin học Python cơ bản lớp 11. Hãy cùng mình tham khảo bên dưới!

Danh sách bài học

Bài 1: Khái Niệm Lập Trình Và Ngôn Ngữ Lập Trình

Bài 2: Các Thành Phần Của Ngôn Ngữ Lập Trình

Bài 3: Cấu trúc chương trình

Bài 4: Một Số Kiểu Dữ Liệu Chuẩn

Bài 5: Khai Báo Biến

Bài 6: Phép Toán, Biểu Thức, Câu Lệnh Gán

Bài 7: Các Thủ Tục Chuẩn Vào Ra Đơn Giản

Bài 8: Soạn Thảo, Dịch, Thực Hiện Và Hiệu Chỉnh Chương Trình

Bài 9: Cấu Trúc Rẽ Nhánh

Bài 10: Cấu Trúc Lặp

Bài 11: Thực Hành Cấu Trúc Rẽ Nhánh

Bài 12: Thực Hành Cấu Trúc Lặp

Bài 13: Kiểu Dữ Liệu Danh Sách (Phần 1)

Bài 14: Kiểu Dữ Liệu Danh Sách (Phần 2)

Bài 15: Kiểu Dữ Liệu Danh Sách (Phần 3)

Bài 16: Kiểu Dữ Liệu Chuỗi

Bài 17: Kiểu Dữ Liệu Chuỗi (Phần 2)

Bài 18: Kiểu Dữ Liệu Chuỗi (Phần 3)

Bài 19: Thực Hành Kiểu Dữ Liệu Danh Sách

Bài 20: Thực Hành Kiểu Dữ Liệu Kiểu Chuỗi

Bài 21: Thao Tác Với Tệp

Video hướng dẫn

Mục tiêu bài học

  • Hiểu được bản chất của tệp văn bản.
  • Biết cách phân loại tệp.
  • Biết sử dụng một số hàm thủ tục chuẩn làm việc với tệp.
  • Biết các thao tác cơ bản với tệp văn bản.
  • Biết vai trò của kiểu tệp.

1. Khái niệm tệp và phân loại

Khái niệm: Tệp hay còn được gọi là tập tin, là một tập hợp các thông tin ghi trên bộ nhớ ngoài, tạo thành một đơn vị lưu trữ do hệ điều hành quản lý.

Lượng lưu trữ thông tin trên tệp rất lớn và chỉ phụ thuộc vào dung lượng đĩa. Ký tự lưu trong tệp không chỉ theo mã ASCII mà còn được ghi theo mã UNICODE.

Phân loại: Để phân loại tệp sẽ dựa vào 2 tiêu chí: Xét theo cách tổ chức dữ liệu và Xét theo cách thức truy cập.

Xét theo cách tổ chức dữ liệu: Tệp sẽ được phân làm 2 loại: 

  • Tệp văn bản: Là tệp mà dữ liệu gồm các ký tự theo mã ASCII hoặc mã UNICODE.
  • Tệp có cấu trúc: Là tệp mà các thành phần của nó được tổ chức theo một cấu trúc nhất định.

Xét theo cách thức truy cập: Tệp sẽ được phân làm 2 loại: 

  •  Tệp truy cập tuần tự: Là tệp truy cập đến dữ liệu bằng cách bắt đầu từ tệp và đi qua lần lượt tất cả các dữ liệu trước nó.
  •  Tệp truy cập trực tiếp: Là tệp tham chiếu đến dữ liệu cần truy cập bằng cách xác định trực tiếp vị trí của nó.

2. Trình tự thao tác file

Khi muốn đọc hoặc ghi file, chúng ta cần phải mới file trước. Khi hoàn thành, file cần phải được đóng lại để các tài nguyên được gắn với file được giải phóng.

Do đó, trong Python, một thao tác với file diễn ra theo thứ tự:

  • Mở tệp tin.
  • Đọc hoặc ghi.
  • Đóng tệp.

3. Khai báo

Việc khai báo được thực hiện trong thao tấc mở tệp để đọc/ghi dữ liệu.

4. Thao tác với tệp

a. Mở tệp

Cú pháp:

Biến tệp = open (tên tệp, [chế độ mở]) 

Trong đó: 

Tên tệp: Là một giá trị chuỗi chứa tên của các file mà bạn muốn truy cập.

Chế độ mở: Xác định các chế độ của file được mở ra như read, write, append,... Đây là thông số tùy chọn và chế độ truy cập file mặc định là read(r).

Dưới đây là danh sách chế độ mở:

  • r: Mở chỉ để đọc
  • w: Mở để ghi, nếu đã có nội dung thì sẽ ghi đè. Neesy file chưa tồn tại thì tạo file mới.
  • x: Tạo file độc quyền mới (exclusive creation) và ghi nội dung, nếu file đã tồn tại thì chương trình báo lỗi.
  • a: Mở file chế độ ghi tiếp. Nếu file đã tồn tại rồi thì nó sẽ ghi tiếp nội dung vào cuối file, nếu file không tồn tạo thì tạo một file mới.
  • t: Mở file ở chế độ văn bản.
  • b: Mở file ở chế độ nhị phân.

Ví dụ:

a = open('Baitap.txt') #Mở file Baitap.txt cùng thư mục với file python đang làm việc.
a = open('E:\Baitap.txt') #Mở file Baitap.txt có đường dẫn được đưa ra, vd: Ổ E:\
a = open('Baitap.txt','r') #Mở file Baitap.txt để đọc.
a = open('Baitap.txt','a') #Mở file Baitap.txt để chế độ ghi nội dung thêm vào.

b. Đọc file

Cú pháp:

Biến tệp.read(size)

Sử dụng phương thức read(size) để lấy về dữ liệu có kích thước bằng size. Nếu để trống tham số này thì nó sẽ đọc hết file hoặc nếu file quá lớn thì nó sẽ đọc đến khi nào giới hạn của bộ nhớ cho phép.

Lưu ý: Giá trị trả về là chuỗi và trong size kí tự trả về , tính cả ký tự xuống dòng.

Ví dụ: Mình có file Baitap.txt chứa thông tin sau:

hình file txt

và mình sẽ mở file txt lên chương trình trong Python.

hình file chương trình python

Đọc toàn bộ file

Để đọc toàn bộ file, ta dùng hàm read().

Ví dụ: Chương trình:

hình ảnh file txt

a = open('C:/Luyentap.txt','r')
print(a.read())

chương trình đọc toàn bộ file

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

Để đọc từng dòng trong Python, bạn dùng hàm ReadLine().

Ví dụ: Chương trình:

a = open('C:/Luyentap.txt','r')
print(a.readline())

chương trình đọc từng dòng

Chương trình đọc từng dòng (2 dòng)

Bạn thêm 1 dòng hàm readline nữa để hiển thị thêm 1 dòng giống như trên.

Ví dụ: Chương trình:

a = open('C:/Luyentap.txt','r')
print(a.readline())
print(a.readline())

chương trình đọc 2 dòng

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

Bạn sử dụng hàm for...in để chạy lần lượt các dòng trong file.

Ví dụ: Chương trình:

a = open('C:/Luyentap.txt','r')
for i in a:
    print(i)

chương trinh hiển thị lần lượt dòng

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.

Ví dụ: Viết chương trình tính tổng giá trị phần tử được gọi từ file *.txt.

File *.txt

hình ảnh file txt giá trị

Chương trình:

a = open('C:/Luyentap.txt','r')
s = 0
for i in  a:
    s = s + int(i)
print("Tổng giá trị trong danh sách: ",s)

chương trình tính tổng giá trị

c.Đọc file

Dùng tell() và seek()

  • Hàm tell() cho bạn biết vị trí hiện tại bên trong file.
  • Hàm seek() thay đổi vị trí hiện tại bên trong file về vị trí thứ k.

Ví dụ: 

a = open('C:/Luyentap.txt','r')
b = a.read(5)
print("Hiển thị 5 ký tự đầu tiên: ",b)
c = a.tell()
print("Vị trí hiện tại là: ",c)
d = a.seek(7)#dưa vị trí hiện tại về vị trí thứ 7
e = a.read() #Đọc hết dữ liệu trong tệp từ vị trí thứ 7 trở đi
print(e)

chương trình dùng tell và sick

d. Ghi file

Cú pháp:

Biến tệp.write(Tên chuỗi)

Thủ tục trên để ghi vào tệp một chuỗi s. Sử dụng các ký tự \n để phân biệt các dòng với nhau. Mỗi lần sử dụng write con trỏ file sẽ được đặt ngay sau ký tự cuối cùng được ghi.

Ví dụ:

Chương trình:

a = open('C:/Luyentap.txt','w')
a.write("Xin chao moi nguoi")
print("Đã ghi xong.......")

chương trình ghi tệp

File text sau khi chạy chương trình sẽ hiển thị chuỗi đã ghi từ chương trình trên.

hình file text được ghi vào

e. Đóng file

Cú pháp:

Biến tệp.close()

Đóng file để đảm bảo quy chế đóng mở và giải phóng bộ nhớ cho chương trình nên điều này là cần thiết.

Python cũng tự động đóng một file khi đối tượng tham chiếu của file đã được tái gán cho một file khác. Tuy nhiên sử dụng phương thức close() để đóng file vẫn tốt hơn.

Ví dụ: Chương trình:

a = open('C:/Luyentap.txt','w')
a.write("Xin chao moi nguoi")
print("Đã ghi xong.......")
a.close()

hình chương trình chứa hàm close

Lưu ý: Vẫn có trường hợp một số ngoại lệ xảy ra khi chúng ta thực hiện các thao tác với file khiến chương trình tự động thoát mà không đóng tệp. Để đảm bảo hơn, bạn nên sử dụng khối lệnh Try...finally(finally sẽ luôn luôn được thực thi bất chấp có hay không ngoại lệ ở đây.

Ví dụ: 

try:
    a = open('C:/Luyentap.txt', 'w')
    a.write("Xin chao moi nguoi")
   
finally:
    a.close()
    print("Đã ghi xong.......")

    

chương trình ngoại lệ try finally

Ngoài ra, bạn còn có thể ghi các khác để đọc và ghi dữ liệu:

Câu lệnh with:

Ghi tệp:

             with open (tên tệp, chế độ mở) as biến tệp:
                    Khối lệnh làm việc với tệp

 

chương trình sử dụng with               
hình file txt with

b. Hằng file và câu lệnh print

chương trình sử dụng file                    
hình file txt file

Vậy là mình đã hướng dẫn xong Bài 21: Thao Tác Với Tệp, mời bạn sang tiếp bài 22.

                   

CHO ĐIỂM BÀI VIẾT NÀY

vote data
Danh sách trung tâm

HÌNH ẢNH HỌC VIÊN

hình ảnh học viên tại Trung tâm tin học Sao Việt hình ảnh học viên tại Trung tâm tin học Sao Việt hình ảnh học viên tại Trung tâm tin học Sao Việt hình ảnh học viên tại Trung tâm tin học Sao Việt hình ảnh học viên tại Trung tâm tin học Sao Việt hình ảnh học viên tại Trung tâm tin học Sao Việt hình ảnh học viên tại Trung tâm tin học Sao Việt hình ảnh học viên tại Trung tâm tin học Sao Việt hình ảnh học viên tại Trung tâm tin học Sao Việt hình ảnh học viên tại Trung tâm tin học Sao Việt hình ảnh học viên tại Trung tâm tin học Sao Việt hình ảnh học viên tại Trung tâm tin học Sao Việt