Hướng dẫn file method in python - phương thức tệp trong python
Dẫn nhậpTrong bài trước, Kteam đã giới thiệu đến bạn các phương thức của KIỂU DỮ LIỆU DICT trong Python Show
Ở bài này Kteam sẽ giới thiệu với các bạn CÁCH XỬ LÝ FILE trong Python. Một trong những điều thiết yếu mà bất cứ ngôn ngữ lập trình nào bạn cũng đều phải tìm hiểu.CÁCH XỬ LÝ FILE trong Python. Một trong những điều thiết yếu mà bất cứ ngôn ngữ lập trình nào bạn cũng đều phải tìm hiểu. Nội dungĐể đọc hiểu bài này tốt nhất bạn cần:
Trong bài này, chúng ta sẽ cùng tìm hiểu những nội dung sau đây
Khái quát về File trong PythonFile là một thứ rất quen thuộc đối với những người sử dụng máy tính. Bạn thao tác,tạo lập file hằng ngày. Nó có thể là một bức hình, một văn bản tài liệu, một file thực thi và nhiều nhiều thứ khác nữa. Trong Python, file có 2 loại: Text File
Binary File
Mở File trong PythonKhỏi phải bàn, muốn thao tác với file, ta phải mở file. Mà muốn mở file, ta cũng cần phải có file. Ở đây, Kteam sẽ tạo một file, và sau đó mở CMD ở ngay trong thư mục chứ file đó để không gặp nhiều khó khăn trong việc xử lí đường dẫn (Việc xử lí đường dẫn, Kteam sẽ giới thiệu cách xử lí bằng thư viện os trong tương lai).CMD ở ngay trong thư mục chứ file đó để không gặp nhiều khó khăn trong việc xử lí đường dẫn (Việc xử lí đường dẫn, Kteam sẽ giới thiệu cách xử lí bằng thư viện os trong tương lai). Tên file sẽ là: kteam.txtkteam.txt Nội dung file:
Hàm openĐược rồi, bây giờ chúng ta sẽ mở file bằng cách sử dụng hàm open Cú pháp:
Công dụng:Ở mức độ cơ bản, chúng ta sẽ chỉ quan tâm đến 2 parameter: file và mode.Ở mức độ cơ bản, chúng ta sẽ chỉ quan tâm đến 2 parameter: file và mode. Nếu các bạn muốn tìm hiểu rõ hơn về các parameter khác. Hãy dùng lệnh:
Ta sẽ bắt đầu bắc cách thử mở một file. Lưu ý: Kteam xin được khuyến khích các bạn không sử dụng interactive prompt ở bài này. Kteam xin được khuyến khích các bạn không sử dụng interactive prompt ở bài này.
Lưu ý: hàm open trả về một file object. Đây cũng là một iterable.hàm open trả về một file object. Đây cũng là một iterable. Tiếp đến là các mode mở file. Và cũng với mức độ cơ bản, Kteam sẽ cung cấp một số mode cơ bản liên quan đến text file. Đóng File trong PythonĐây là việc chúng ta nên làm sau khi thao tác xong với file. Đó là đóng file. Cú pháp:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
Ta sẽ bắt đầu bắc cách thử mở một file. Lưu ý: Kteam xin được khuyến khích các bạn không sử dụng interactive prompt ở bài này.
Lưu ý: hàm open trả về một file object. Đây cũng là một iterable.Tiếp đến là các mode mở file. Và cũng với mức độ cơ bản, Kteam sẽ cung cấp một số mode cơ bản liên quan đến text file. Đóng File trong PythonCú pháp:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) Nếu size bị bỏ trống hoặc là một số âm. Nó sẽ đọc hết nội dung của file đồng thời đưa con trỏ file tới cuối file. Nếu không nó sẽ đọc tới n kí tự (với n = size) hoặc cho tới khi nội dung của file đã đọc xong.
Ta sẽ bắt đầu bắc cách thử mở một file.
Lưu ý: Kteam xin được khuyến khích các bạn không sử dụng interactive prompt ở bài này.
Lưu ý: hàm open trả về một file object. Đây cũng là một iterable.Cú pháp:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)Với parameter size thì hoàn toàn tương tự như phương thức read.
Ta sẽ bắt đầu bắc cách thử mở một file.
Lưu ý: Kteam xin được khuyến khích các bạn không sử dụng interactive prompt ở bài này.Cú pháp:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) hint. Công dụng:Ở mức độ cơ bản, chúng ta sẽ chỉ quan tâm đến 2 parameter: file và mode. Phương thức này sẽ đọc toàn bộ file, sau đó cho chúng vào một list. Với các phần tử trong list là mỗi dòng của file.
Ví dụ:
Đọc file bằng constructor nhận iterableNhư đã nói, file object nhận được từ hàm open cũng là một iterable.iterable. Thế nên, ta có thể sử dụng constructor list
Và cũng có thể là Tuple.
Các constructor này cũng sẽ đưa con trỏ file xuống cuối file. Ghi File trong PythonChúng ta có sự giúp đỡ của phương thức write để ghi nội dung vào file. Và chúng ta cũng không cần phải tạo file. Vì các mode ghi sẽ giúp chúng ta tạo file. Phương thức writeCú pháp:
Công dụng: Phương thức này sẽ trả về số kí tự mà chúng ta ghi vào.Phương thức này sẽ trả về số kí tự mà chúng ta ghi vào. Ví dụ: 0Mỗi lần sử dụng write. Con trỏ file sẽ được đặt ngay sau kí tự cuối cùng được ghi. Hãy lưu ý điều này, nó rất quan trọng đấy. Đặc biệt là khi bạn sử dụng các mode vừa đọc vừa ghi. Nhưng, bạn sẽ gặp vấn đề như thế này khi sử dụng mode w. Ta hãy mở lại file khi nãy ta mới ghi một vài dòng vào nhé. 1Đó là nội dung file ban đầu của bạn sẽ bị mất đi. Đó là lí do chúng ta cần mới mode a. Ta hãy mở lại file ta mới viết thêm một lần nữa. 2Kiểm soát con trỏ fileBạn có thể thấy, con trỏ file rất quan trọng, nó dẫn đường cho việc đọc file, viết file. Và bạn cũng cần phải kiểm soát được nó. Việc đó, ta sẽ nhờ tới phương thức seek Phương thức seekCú pháp:
Mỗi lần sử dụng write. Con trỏ file sẽ được đặt ngay sau kí tự cuối cùng được ghi. Hãy lưu ý điều này, nó rất quan trọng đấy. Đặc biệt là khi bạn sử dụng các mode vừa đọc vừa ghi. whence = 0. whence = 1 hoặc whence = 2 chỉ sử dụng với binary file. Nhưng, bạn sẽ gặp vấn đề như thế này khi sử dụng mode w. Ta hãy mở lại file khi nãy ta mới ghi một vài dòng vào nhé. Đó là nội dung file ban đầu của bạn sẽ bị mất đi. Đó là lí do chúng ta cần mới mode a.whence. Ta hãy mở lại file ta mới viết thêm một lần nữa.Phương thức này giúp ta di chuyển con trỏ từ vị trí đầu file qua offset kí tự. Và parameter offset phải là một số tự nhiên.
Ví dụ: 3Việc đó, ta sẽ nhờ tới phương thức seekPhương thức seek 4
.seek(offset, whence=0)with-block nằm thụt vào so với dòng with expression (theo chuẩn PEP8 là 4 space và là dùng space không dùng tab) Với Python 3.X. Một text file sẽ chỉ được sử dụng whence = 0. whence = 1 hoặc whence = 2 chỉ sử dụng với binary file.__enter__ và __exit__ của đối tượng. Do đó, ở đây Kteam sẽ nói cơ bản khi sử dụng file. Với Python 2.X thì bạn không phải quan tấm vấn đề này. with-block. File sẽ được đóng. 5Do đó, ta cũng không cần quan tâm tới parameter whence. nhiên, có thể sử dụng câu lệnh with kết hợp với toán tử := 6Công dụng: Phương thức này giúp ta di chuyển con trỏ từ vị trí đầu file qua offset kí tự. Và parameter offset phải là một số tự nhiên.Nhờ phương thức này, ta có thể ghi nội dung từ bất cứ đâu trong file.Và từ đó ta có thể đọc lại file sau khi ta đưa con trỏ file xuống cuối file.
7Nhớ rằng with-block nằm thụt vào so với dòng with expression (theo chuẩn PEP8 là 4 space và là dùng space không dùng tab)
8Tất nhiên, có thể sử dụng câu lệnh with kết hợp với toán tử := Củng cố bài họcĐáp án bài trước Bạn có thể tìm thấy câu hỏi của phần này tại CÂU HỎI CỦNG CỐ trong bài KIỂU DỮ LIỆU DICT TRONG PYTHON – Phần 2. Vì hai dict trỏ cùng vào một nơi. Cách khắc phúc là ta dùng phương thức copy để có bản sao dict1. Luyện tập – Thử thách – Không ngại khó”. Sẽ có lỗi ởCâu hỏi củng cố |