DANH MỤC: PYTHON CƠ BẢN

Bài 13: Input và Đọc ghi file trong Python


Ở các bài trước chúng ta đã được tìm hiểu về các kiểu dữ liệu, toán tử cũng như cách khai báo hàm,... trong Python rồi, nhưng ở các bài đó chủ yếu vẫn là làm việc với hệ thống, dữ liệu có sẵn. Mà chúng ta chưa biết cách nhận dữ liệu mà người dùng nhập vào trên comandline, và bài hôm nay chúng ta sẽ tìm hiều về nó.

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:

input trong Python

2, Đọc ghi file.

File là một thứ rất cần thiết trong các dự án, ví dụ như chúng ta cần phải ghi log ra một file để sau này có thể kiểm soát được.... Và ngôn ngữ lập trình nào cũng hỗ trợ chúng ta làm việc với file.

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 đó:

  • filePath là đường dẫn đến địa chỉ của file.
  • 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).
  • buffer là thông số đệm cho file mặc định thì nó sẽ là 0.

Các chế độ mode.

Mode Chú thích
r Chế độ chỉ được phép đọc.
rb Chế độ 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.
w Chế độ 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ũ.
wb Tươ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
a Mở 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 đó.
ab Tươ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.

Đó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.

Đọ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 đó:

  • fileObject là đối tượng mà chúng ta thu được khi sử dụng hàm open().
  • 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)

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 đó:

  • fileObject là đối tượng mà chúng ta thu được khi sử dụng hàm open().
  • 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('Vu Thanh Tai - toidicode.com')
# dong file
file.close()

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ính Chú thích
file.name Trả về tên của file đang được mở.
file.mode Trả về chế độ mode của file đang được mở.
file.closed Trả 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()

3, Lời kết.

Phần này chúng ta tạm dừng ở đây thôi nhé, còn các phần như tương tác với file và thư mục trong Python thì mình sẽ trình bài ở một bài khác.

Nguồn: Toidicode.com

Thông tin tác giả

Vũ Thanh Tài

Vũ Thanh Tài

Biển học vô biên, quay đầu là dại!

Hãy tham gia group facebook để cùng giao lưu chia sẻ kiến thức! Tham Gia