Một số khái niệm liên quan đến File
File hay còn gọi là tệp, tập tin. File là tập hợp của các thông tin được đặt tên được lưu trữ trên bộ nhớ máy tính như đĩa cứng, đĩa mềm, CD, DVD,...Hiểu theo một cách khác thì File chính là một dãy bit có tên và được lưu trữ trên các thiết bị bộ nhớ của máy tính.
Có 3 loại file thông dụng là file văn bản, hình ảnh và âm thanh. Trong bài viết này đối tượng mà tôi hướng đến chính là: File văn bản.
Như đã nói ở phần tiêu đề, hầu hết các sản phẩm phần mềm hiện này đều ít nhiều "đụng chạm" đến file. File hỗ trợ cho việc lưu trữ các thông tin của sản phẩm phần mềm đó trong quá trình hoạt động. Khi xây dựng một game, bạn cần file để lưu trữ các dữ liệu như toạ độ, điểm số, tiền, vàng, ... Khi xây dựng một hệ thống quản lý, ứng dụng web, ... thì việc lưu trữ các thông tin liên quan vào file cũng vô cùng cần thiết.
Mở File
Để có thể đọc và ghi một file nào đó thì mở file là công việc tất yếu. Python cho phép chúng ta thực hiện điều đó với hàm open.
Cú pháp
open(filename, mode)
Trong đó
- filename là tên của tập tin cần mở.
- mode là một vài ký tự quy định cách thức mà tập tin sẽ được mở ra để làm gì. Khi mode bị bỏ qua thì mặc định sẽ là ký tự 'r'.
Ta có các mô tả mode sau:
Mode | Mô tả |
r | Mở file chỉ để đọc. |
r+ | Mở file để đọc và ghi. |
w | Tạo một file mới để ghi, nếu file đã tồn tại thì sẽ bị ghi mới. |
w+ | Tạo một file mới để đọc và ghi, nếu file tồn tại thì sẽ bị ghi mới. |
a | Mở file để ghi thêm vào cuối file, nếu không tìm thấy file sẽ tạo mới một file để ghi mới. |
a+ | Mở file để đọc và ghi thêm vào cuối file, nếu không tìm thấy file sẽ tạo mới một file để đọc và ghi mới. |
Ví dụ
f = open('demo_file.txt', 'r')
Ngoài ra Windows còn hỗ trợ các mode để đọc và ghi file ở chế độ nhị phân như: rb, rb+, wb, wb+, ab, ab+.
Đọc File
Giả sử tôi có một tập tin demo_file.txt với nội dung như sau:
Hello all!
Welcome to STDIO.
My name's Mido. I'm a author of STDIO.
Tôi sẽ sử dụng tập tin này cho các ví dụ về đọc file trong bài viết này.
Có nhiều phương thức để đọc được dữ liệu từ file. Dưới đây tôi sẽ chỉ ra một vài cách đọc file mà tôi nghĩ là cần thiết.
Đọc file với phương thức read
Cú pháp
fileObject.read([size]);
Phương thức này cho phép ta đọc một lượng dữ liệu tương ứng với size và trả về một chuỗi. Khi size bị bỏ qua thì toàn bộ nội dung của file sẽ được đọc.
Ví dụ
f = open('demo_file.txt', 'r')
str = f.read()
print ('Noi dung file cua ban la:\n', str)
Kết quả in ra màn hình
Noi dung file cua ban la:
Hello all!
Welcome to STDIO.
My name's Mido. I'm a author of STDIO.
Đọc file với phương thức readline
Cú pháp
fileObject.readline();
Phương thức này cho phép đọc một dòng trong file và trả về chuỗi.
Ví dụ
f = open('demo_file.txt', 'r')
line1 = f.readline()
line2 = f.readline()
print ('Dong 1 cua file: ', line1)
print ('Dong 2 cua file: ', line2)
Kết quả in ra màn hình
Dong 1 cua file: Hello all!
Dong 2 cua file: Welcome to STDIO.
Lưu ý: Ký tự \n sẽ được đọc và trả về ở cuối chuỗi nếu đọc file theo phương thức này.
Ghi File
Tương tự đọc file, để ghi một file ta cần mở file bằng cú pháp để ghi và sử dụng phương thức write để ghi vào.
Cú pháp
fileObject.write(string)
Phương thức này cho phép ghi một chuỗi có nội dung là string vào vị trí của con trỏ trong tập tin.
Ví dụ
info = \
'Name: DOTNET GROUP\n' +\
'Mail: webmaster@dotnet.vn\n' +\
'Skype: quang.it'
f = open('demo_file2.txt', 'w')
f.write(info)
Ví dụ trên tôi thực hiện ghi thông tin cá nhân của tôi tương ứng với biến info ở trong ví dụ vào một file mới demo_file2.txt. Và sau đây là nội dung bên trong file sau khi tôi hoàn thành ví dụ trên.
Name: DOTNET GROUP
Mail: webmaster@dotnet.vn
Skype: quang.it
Đóng File
Cú pháp
fileObject.close()