Việc
nhập dữ liệu từ bàn phím là không khả thi và mất khá nhiều thời gian. Trong một
số trường hợp, chúng ta cần lưu lại kết quả của việc thực thi chương trình để
xem lại. Trong những trường hợp như vậy, chúng ta sẽ đọc nội dung từ file hoặc
lưu kết quả thực thi ra file.
*Quy trình làm việc với tệp gồm 3 bước như
sau:
Bước 1: Mở tệp để đọc hay ghi.
Bước 2: Đọc dữ liệu từ tệp hoặc Ghi dữ liệu vào tệp.
Bước 3: Đóng tệp đã mở.
1.Mở
tệp
Cú pháp:
<Tên biến tệp>
= open(“<đường dẫn đến tệp>”, “<Chế độ mở tệp>”)
Giải thích:
<Tên
biến tệp> : Đây là tên đặt
cho tệp cần mở.
<Đường dẫn đến tệp>: Đường dẫn đến tệp mình muốn mở ở trên máy tính và phải được đặt trong cặp nháy đôi. Lưu ý:
+ Nếu tệp muốn mở nằm cùng thư mục với chương trình Python đang chạy thì ta không cần để cụ thể đường dẫn, chỉ cần để tên tệp là được. VD: “test.txt”
+ Nếu tệp muốn mở không nằm cùng thư mục với chương trình Python đang chạy thì phải chỉ đường dẫn cụ thể. VD: “D:/text.txt”. Lưu ý: đường dẫn phải sử dụng dấu /
<Chế
độ mở tệp>: Phần này chúng ta chỉ
tìm hiểu 2 chế độ đọc và ghi.
+ “w” : Nếu muốn mở tệp để ghi.
+ “r” : Nếu muốn mở tệp để đọc.
Ví dụ:
File1 = open(“test.txt”,
“w”) #
Mở tệp để ghi
File2 = open(“test.txt”,
“r”) #
Mở tệp để đọc
File3 =
open(“D:/test.txt”, “w”) # Mở tệp
để ghi
2.Ghi
dữ liệu vào tệp:
Để có thể ghi dữ liệu vào tệp,
đầu tiên chúng ta cần phải mở nó lên ở chế độ “w”, dữ liệu ghi vào tệp bắt buộc phải là kiểu chuỗi
(str).
Cú pháp:
<Tên biến tệp>.write(“Nội dung cần ghi”)
Ví
dụ: Để ghi chữ “Xin chao” vào tệp ta thực hiện
File1.write(“Xin chao”)
*Một số lưu ý khi ghi dữ liệu vào tệp.
-Khi giá trị muốn ghi vào
tệp không phải kiểu xâu (số nguyên, số thực,…), để ghi được thì ta cần chuyển
giá trị đó về kiểu xâu bằng cách ép kiểu. Cú pháp ép kiểu:
str(giá trị)
Ví dụ 1: Cho biến a = 10, muốn ghi giá trị biến a vào tệp ta phải chuyển biến a về
kiểu xâu bằng ép kiểu. Cách thực hiện:
File2.write(str(a))
-Khi muốn ghi dữ liệu vào tệp nhưng dữ liệu phải nằm trên nhiều dòng. Ta
có cách thực hiện như sau: thêm ký tự “\n” vào cuối câu lệnh ghi. Khi đó dữ liệu ghi sẽ nằm
trên nhiều dòng trong tệp.
Ví dụ 2: Nếu muốn ghi dữ liệu file như hình bên dưới:
Ta thực hiện:
File1.write(“Python\n”) hoặc
File1.write(“Python” + “\n”)
File1.write(“Pascal\n”) hoặc File1.write(“Pascal” + “\n”)
File1.write(“Java”)
Lưu
ý: Nếu tệp muốn mở để ghi
dữ liệu nó chưa được tạo thì chương trình sẽ tự động tạo một tệp với tên chúng
ta đã đặt và tệp này được lưu cùng thư mục với chương trình Python đang chạy.
Còn nếu tệp đó đã được tạo thì nó sẽ xoá nội dung cũ đi và ghi nội dung mới vào
tệp.
3.Đọc
dữ liệu từ tệp
Để có thể đọc được dữ liệu từ tệp
thì bắt buộc người lập trình phải biết cấu trúc lưu trữ của tệp đó. Chẳng hạn
như: đọc dãy số từ tệp thì chúng ta phải biết dãy số đó từng phần tử lưu trên
cùng 1 dòng hay mỗi phần tử là 1 một dòng,… Vì vậy, ở nội dung này chúng ta chỉ
trình bày việc đọc dữ liệu từ tệp ở các trường hợp cơ bản.
Tương tự, để đọc dữ liệu từ tệp,
đầu tiên chúng ta phải thực hiện mở tệp ở chế độ đọc “r” và chúng ta cần ghi nhớ
dữ liệu đọc từ tệp ra luôn có kiểu chuỗi (str).
Cú pháp:
<Tên biến> = <Tên
biến tệp>.read(n)
<Tên biến> = <Tên
biến tệp>.readline()
Giải thích:
- read(n): Đọc từ tệp n kí
tự bắt đầu vị trí hiện tại, vị trí mới tăng thêm n kí tự.
- readline(): Đọc từ vị
trí hiện tại đến cuối dòng, vị trí mới nằm ở đầu dòng tiếp theo.
Ví dụ 1: Cho tệp test.txt có giá trị như hình bên dưới:
a
= File1.read(4) # Đọc 4 ký tự bắt đầu từ vị trí đầu tiên. Kết
quả là: “thpt”, lưu ý vị trí mới của con trỏ văn bản lúc này nằm ở kí tự
sau kí tự “t”, tức là khoảng trắng.
b
= File1.read(5) # Đọc 5 kí tự bắt đầu từ khoảng trắng. Kết
quả là: “ quoc”
c
= File1.readline() # Đọc từ vị trí hiện tại đến cuối dòng. Kết
quả la: “ thai”
Ví
dụ 2: Cho tệp test.txt có giá
trị như hình bên dưới:
a
= File1.readline() # Đọc từ đầu dòng đến cuối dòng, Kết quả là: “Lap
trinh Python”. Vị trí mới của con trỏ là đầu dòng tiếp theo.
b
= File1.read(3) # Kết quả là: “Mon”
4.Đóng
tệp
Để hoàn thành việc đọc hoặc ghi
dữ liệu vào tệp thì bắt buộc các bạn cần thực hiện lệnh đóng tệp.
Cú pháp:
<Tên biến tệp>.close()
Ví dụ: File1.close()
5.Ví
dụ áp dụng
Ví dụ 1: Cho 2 biến a = 10, b = 15. Viết chương trình ghi vào tệp có tên là
“tong.txt” được lưu ở ổ đĩa D trên máy tính các nội dung sau: Giá trị biến a,
giá trị biến b, Giá trị tổng của 2 biến. Mỗi giá trị ghi trên một dòng.
Khi chạy chương trình:
Ví
dụ 2: Viết chương trình đọc dữ
liệu từ tệp có tên là “chao1.txt” được lưu trữ trong ổ đĩa D của máy tính và in
các giá trị đó ra màn hình. Giá trị của tệp như hình bên dưới:
Chương trình:
Khi chạy chương trình:
KẾT LUẬN
Kiểu dữ liệu tệp hơi trừu tượng, chúng ta cần phải thuộc các cú pháp để thực hiện cho đúng yêu cầu.