Bài 15: Đọc ghi file trong Python - Lập trình Python cơ bản

Đăng bởi: Admin | Lượt xem: 3873 | Chuyên mục: Python


Xử lý file trong Python không khó nếu bạn đã là một lập trình viên chuyên nghiệp, đã từng làm quen và xử lý file ở các ngôn ngữ khác. Tuy nhiên, dù khó hay dễ bạn cũng cần phải bắt đầu với những cú pháp cơ bản nhất do Python quy định.

1. Input

Trong Python có cung cấp cho chúng ta hàm input để nhận dữ liệu từ người dùng nhập vào trong commandline. Sử dụng với cú pháp như sau:
input(something)
Trong đó, something là nội dung mà bạn muốn hiển thị trước khi người dùng nhập dữ liệu. Và giá trị mà hàm này trả về chính là giá trị mà người dùng nhập vào.
VD: Mình sẽ hỏi tuổi người dùng và in ra tuổi mà người dùng nhập vào.
print("Hello guy!")
age = input("How old are you? ")
print("age: " + age)
Và đây là ví dụ mình chạy:

2. Mở file

Để mở file trong Python chúng ta sử dụng hàm open với cú pháp như sau:
open(filePath, mode, buffer)
Trong đó:
  1. filePath là đường dẫn đến địa chỉ của file.
  2. mode là thông số thiết lập chế độ chúng ta mở file được cấp những quyền gì? Mặc địn mode sẽ bằng r (xem các mode ở dưới).
  3. buffer là thông số đệm cho file mặc định thì nó sẽ là 0.
Các chế độ mode.
ModeMô tả
rChế độ chỉ được phép đọc.
rbChế độ chỉ được phép đọc nhưng cho định dạn nhị phân.
r+Chế độ này cho phép đọc và ghi file, con trỏ nó sẽ nằm ở đầu file.
rb+Chế độ này cho phép đọc và ghi file ở dạng nhị phân, con trỏ sẽ nằm ở đầu file.
wChế độ ghi file, nếu như file không tồn tại thì nó sẽ tạo mới file và ghi nội dung, còn nếu như file đã tồn tại nó sẽ ghi đè nội dung lên file cũ.
wbTương tự chế độ w nhưng đối với nhị phân.
w+Mở file trong chế độ đọc và ghi. còn lại như w.
wb+Giống chế độ w+ nhưng đối với nhị phân
aMở file trong chế độ ghi tiếp. Nếu file đã tồn tại rồi thì nó sẽ ghi tiếp nội dung, và nếu như file chưa tồn tại thì nó sẽ tạo một file mới và ghi nội dung vào đó.
abTương tự a nhưng đối với nhị phân.
a+Mở file trong chế độ đọc và ghi tiếp nội dung, còn lại cơ chế giống chế độ a.
ab+Tương tự chế độ a+ nhưng đối với nhị phân.
VD: Mình sẽ đọc file readme.md có cùng cấp với file index.py của mình.
|-- readme.md
|-- index.py
code file index.py
# index.py
open('readme.md')
Lúc này hàm open sẽ trả về một object chứa các các phươn thức để tác động đến file.

3. Đóng file

Để đóng một file đang được mở, thì chúng ta sử dụng phương thức close() với cú pháp như sau:
fileObject.close()
Trong đó, fileObject là đối tượng mà chúng ta thu được khi sử dụng hàm open().
Để đảm bảo quy chế đóng mở và giải phóng bộ nhớ cho chương trình thì các bạn phải luôn nhớ đống file khi kết thúc phiên làm việc.

4. Đọc file

Sau khi đã mở được file ra rồi, để đọc được file thì chúng ta sử dụng phương thức read với cú pháp:
fileObject.read(length);
Trong đó:
  1. fileObject là đối tượng mà chúng ta thu được khi sử dụng hàm open().
  2. length là dung lượng của dữ liệu mà chúng ta muốn đọc, nếu để trống tham số này thì nó sẽ đọc hết file hoặc nếu file lớn quá thì nó sẽ đọc đến khi giới hạn của bộ nhớ cho phép.
VD: Mình sẽ đọc và xuất ra dữ liệu đọc được trong file readme ở trên.
# mo file
file = open('readme.md')
# doc file
data = file.read();
# dong file
file.close()
# in du lieu doc duoc
print(data)

5. Ghi file

Để ghi được file thì bạn phải chắc chắn là đang mở file ở các chế độ cho phép ghi. Và sử dụng phương thức write với cú pháp sau:
fileObject.write(data)
Trong đó:
  1. fileObject là đối tượng mà chúng ta thu được khi sử dụng hàm open().
  2. data là dữ liệu mà chúng ta muốn ghi vào trong file.
VD:  Mình sẽ ghi dữ liệu vào file readme.md
# mo file o che do ghi
file = open('readme.md','w')
# ghi file
file.write('vncoder.vn')
# dong file
file.close()

6. Các thuộc tính trong file

Nếu như bạn cần biết thêm các thông số của file hiện tại thì bạn có thể tham khảo thêm các thuộc tính trong object file mà Python đã cung cấp sẵn cho chúng ta. Các thuộc tính như sau:
Trong các trường hợp dưới đây: giả sử file là kết quả thu được từ hàm open().
Thuộc tínhChú thíchfile.nameTrả về tên của file đang được mở.file.modeTrả về chế độ mode của file đang được mở.file.closedTrả về true nếu file đã được đóng, và false nếu file chưa đóng.
VD: Mình sẽ in ra thông số của file readme.md ở trên.
file = open('readme.md','w')
print( file.name )
# readme
print( file.mode )
# w
print( file.closed )
# False
file.close()
Bài tiếp theo: Hàm trong Python >>
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!