Xử lí file trong python

0
557
Bài số 22 trong 26 bài của series Python Không Khó

Trong Python, không cần nhập thư viện ngoài để đọc và ghi tệp. Python cung cấp một hàm sẵn có để tạo, ghi và đọc file trong python. Hôm nay lập trình không khó sẽ cùng các bạn các thao tác xử lí file trong python.

Mở một file trong python

Cú pháp

Dưới đây là chi tiết tham số –

  • file_name – Đối số file_name là một giá trị chuỗi chứa tên của tệp mà bạn muốn truy cập.
  • access_mode – access_mode xác định chế độ mà tệp phải được mở, tức là đọc, ghi, nối, v.v. Một danh sách đầy đủ các giá trị có thể được đưa ra dưới đây trong bảng. Đây là tham số tùy chọn và chế độ truy cập tệp mặc định được đọc (r).
  • buffering – Nếu giá trị bộ đệm được đặt thành 0, không có bộ đệm nào được sử dụng. Nếu giá trị bộ đệm là 1, bộ đệm dòng được thực hiện trong khi truy cập tệp. Nếu bạn chỉ định giá trị đệm là số nguyên lớn hơn 1, thì hành động đệm được thực hiện với kích thước bộ đệm được chỉ định. Nếu âm, kích thước bộ đệm là mặc định của hệ thống (hành vi mặc định).

Có bốn phương thức (chế độ) khác nhau để mở tệp:

"r"– Đọc – Giá trị mặc định. Mở tệp để đọc, lỗi nếu tệp không tồn tại.

"a" – Nối thêm – Mở tệp để nối thêm, tạo tệp nếu không tồn tại.

"w" – Viết – Mở tệp để ghi, tạo tệp nếu không tồn tại.

"x" – Tạo – Tạo tệp đã chỉ định, trả về lỗi nếu tệp tồn tại

Ngoài ra, bạn có thể chỉ định nếu tệp nên được xử lý ở chế độ nhị phân hoặc văn bản:

"t"– Văn bản – Giá trị mặc định. Chế độ văn bản.

"b" – Nhị phân – Chế độ nhị phân (ví dụ: hình ảnh).

Vd: giả sử nếu tôi đã có một file tên là file.txt, để mở file đó ở chế độ đọc (read) tôi chỉ cần dùng lệnh sau:

Lưu ý: Đảm bảo tệp tồn tại, nếu không bạn sẽ gặp lỗi.

Mở file với Python context manager

Context manager: Trong bất kỳ ngôn ngữ lập trình nào, việc sử dụng các tài nguyên như  tệp hoặc kết nối cơ sở dữ liệu là rất phổ biến. Nhưng những tài nguyên này bị hạn chế trong nguồn cung. Do đó, vấn đề chính nằm ở việc đảm bảo giải phóng các tài nguyên này sau khi sử dụng. Nếu chúng không được giải phóng thì nó sẽ dẫn đến rò rỉ tài nguyên và có thể khiến hệ thống bị chậm hoặc hỏng. Sẽ rất hữu ích nếu người dùng có cơ chế thiết lập tự động đóng mở tài nguyên. Trong Python, có thể đạt được bằng cách sử dụng các context manager tạo điều kiện cho việc xử lý tài nguyên hợp lý. Cách phổ biến nhất để thực hiện các thao tác tệp là sử dụng từ khóa with như dưới đây:


Đoạn code trên mở một file, đọc dữ liệu và đóng file lại. Nếu có bất kỳ lỗi gì xảy ra, thì file cũng luôn luôn được đảm bảo là đã đóng.

 Hành động mở tệp sẽ tiêu tốn tài nguyên (được gọi là mô tả tệp) và tài nguyên này bị hệ điều hành của bạn giới hạn. Điều đó có nghĩa là, có một số lượng tệp tối đa  có thể mở cùng một lúc. Để chứng minh, hãy thử chạy đoạn code này:


Một thông báo lỗi nói rằng có quá nhiều tệp được mở. Ví dụ trên là một trường hợp rò rỉ mô tả tập tin. Nó xảy ra vì có quá nhiều tệp đang mở và chúng không được đóng. 

Các thuộc tính đối tượng tập tin

Khi một tệp được mở và bạn có một đối tượng tệp , bạn có thể nhận được nhiều thông tin khác nhau liên quan đến tệp đó.

Dưới đây là danh sách tất cả các thuộc tính liên quan đến đối tượng file trong python :

file.clcl: Trả về true nếu tập tin bị đóng, sai khác.

file.mode: Trả về chế độ truy cập với tập tin đã được mở.

file.name: Trả về tên của tệp.

file.softspace: Trả về false nếu không gian được yêu cầu rõ ràng với in, đúng khác.

Tạo file mới

Để tạo một file mới trong Python, hãy sử dụng open(tên_file, "x")

Như đã nói ở trên thì tham số “x” là để tạo file mới. Phương thức trên sẽ tạo ra một file trống. Nếu file đã tồn tại, sẽ báo lỗi.

Vd:

Đọc file trong python

Đọc file

Giả sử chúng ta có tệp tên là “file.txt” với dữ liệu như ở dưới, nằm trong cùng thư mục với Python:

Để mở tệp, sử dụng hàm open().

R

Hàm open() trả về một đối tượng tập tin, dùng hàm read() để đọc nội dung của tập tin:

  • Tôi đã khai báo biến f để mở tệp có tên file.txt. Mở có 2 đối số, tệp muốn mở và một chuỗi đại diện cho các loại chế độ mà chúng tôi muốn thực hiện trên tệp.
  • Ở đây, chúng tôi đã sử dụng chữ “r” (read) trong đối số của mình, biểu thị cho chế độ đọc.

Và kết quả là dữ liệu của file đã được ghi ra trên màn hình console.

đọc file trong python

Đọc một phần của file

Theo mặc định, phương thức read() trả về toàn bộ văn bản, nhưng bạn cũng có thể chỉ định số lượng ký tự bạn muốn trả về:

đọc file trong python

Đọc dữ liệu trên một dòng

Bạn có thể trả về một dòng bằng cách sử dụng phương thức readline():

Đọc file trong python

Bằng cách gọi readline()hai lần, bạn có thể đọc hai dòng đầu tiên:

Ghi dữ liệu vào một tập tin hiện có

Để ghi vào một tệp hiện có, bạn phải thêm một tham số cho hàm open():

"a" – Nối – sẽ nối vào cuối tệp

"w" – Viết – sẽ ghi đè lên bất kỳ nội dung hiện có

Ghi thêm dữ liệu vào file

Cần phải để file ở chế độ nối thêm a. Sử dụng lệnh write() để ghi dữ liệu:

Ghi thêm dữ liệu

Phần được đóng khung màu đỏ là dữ liệu mới được thêm vào. Còn phần màu xanh là dữ liệu đã có sẵn ở trong file.

Ghi đè dữ liệu vào file

Đầu tiên cần để file ở chế độ ghi đè w. Sau đó sử dụng hàm write để ghi đè dữ liệu.

Ghide2

Như bạn đã thấy trong ảnh thì khi để ở chế độ ghi đè thì toàn bộ dữ liệu ờ trong file sẽ bị xóa và được thêm dữ liệu mới.

Đóng file

Sau khi làm việc xong với file trong  python, đừng quên đóng nó lại:

sử dụng hàm  close() để đóng file.

đóng File

Xóa một tập tin

Để xóa một tập tin, bạn phải nhập mô-đun os và chạy hàm os.remove() của nó :

Hãy tham gia group lập trình không khó để cùng thảo luận về các vấn đề về lập trình.

Hẹn các bạn vào các bài học sau!!!

Các bài viết trong SeriesBài trước: Thư viện Datetime trong pythonBài sau: Làm việc với JSON trong Python
0 0 vote
Đánh giá bài viết
Subscribe
Notify of
guest
0 Bình luận
Inline Feedbacks
View all comments