Computer >> Máy Tính >  >> Lập trình >> Python

Mở và đóng tệp bằng Python

Cho đến bây giờ, bạn đã đọc và ghi với đầu vào và đầu ra tiêu chuẩn. Bây giờ, chúng ta sẽ xem cách sử dụng các tệp dữ liệu thực tế.

Python cung cấp các hàm và phương thức cơ bản cần thiết để thao tác các tệp theo mặc định. Bạn có thể thực hiện hầu hết tệp thao tác sử dụng một đối tượng tệp.

Hàm đang mở

Trước khi có thể đọc hoặc ghi một tệp, bạn phải mở tệp đó bằng hàm open () có sẵn của Python. Hàm này tạo tệp đối tượng, sẽ được sử dụng để gọi các phương thức hỗ trợ khác được liên kết với nó.

Cú pháp

 file object =open (file_name [, access_mode] [, buffering]) 

Đây là chi tiết thông số -

  • tên_tệp - Đối số tên tệp 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 thêm, v.v. Danh sách đầy đủ các giá trị có thể được đưa ra bên dưới trong bảng. Đây là tham số tùy chọn và chế độ truy cập tệp mặc định là đọc (r).
  • đệm - Nếu giá trị bộ đệm được đặt thành 0, không có bộ đệm nào diễn ra. 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ị bộ đệm là một 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).

Đây là danh sách các chế độ mở tệp khác nhau -

Sr.No Chế độ &Mô tả
1 r
Mở tệp chỉ để đọc. Con trỏ tệp được đặt ở đầu tệp. Đây là chế độ mặc định.
2 rb
Mở tệp chỉ để đọc ở định dạng nhị phân. Con trỏ tệp được đặt ở đầu tệp. Đây là chế độ mặc định.
3 r +
Mở tệp để đọc và ghi. Con trỏ tệp được đặt ở đầu tệp.
4 rb +
Mở tệp để đọc và ghi ở định dạng nhị phân. Con trỏ tệp được đặt ở đầu tệp.
5 w
Mở tệp chỉ để ghi. Ghi đè tệp nếu tệp tồn tại. Nếu tệp không tồn tại, hãy tạo một tệp mới để ghi.
6 wb
Mở tệp chỉ để ghi ở định dạng nhị phân. Ghi đè tệp nếu tệp tồn tại. Nếu tệp không tồn tại, hãy tạo một tệp mới để ghi.
7 w +
Mở tệp để ghi và đọc. Ghi đè tệp hiện có nếu tệp tồn tại. Nếu tệp không tồn tại, hãy tạo một tệp mới để đọc và ghi.
8 wb +
Mở tệp để ghi và đọc ở định dạng nhị phân. Ghi đè tệp hiện có nếu tệp tồn tại. Nếu tệp không tồn tại, hãy tạo một tệp mới để đọc và ghi.
9 a
Mở tệp để bổ sung. Con trỏ tệp ở cuối tệp nếu tệp tồn tại. Tức là, tệp đang ở chế độ nối thêm. Nếu tệp không tồn tại, nó sẽ tạo một tệp mới để ghi.
10 ab
Mở tệp để thêm vào ở định dạng nhị phân. Con trỏ tệp ở cuối tệp nếu tệp tồn tại. Tức là, tệp đang ở chế độ nối thêm. Nếu tệp không tồn tại, nó sẽ tạo một tệp mới để ghi.
11 a +
Mở tệp để bổ sung và đọc. Con trỏ tệp ở cuối tệp nếu tệp tồn tại. Tệp sẽ mở ở chế độ nối thêm. Nếu tệp không tồn tại, nó sẽ tạo một tệp mới để đọc và ghi.
12 ab +
Mở tệp để bổ sung và đọc ở định dạng nhị phân. Con trỏ tệp ở cuối tệp nếu tệp tồn tại. Tệp sẽ mở ở chế độ nối thêm. Nếu tệp không tồn tại, nó sẽ tạo một tệp mới để đọc và ghi.

Thuộc tính đối tượng tệp

Khi 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 đó.

Đây là danh sách tất cả các thuộc tính liên quan đến đối tượng tệp -

Sr.No Chế độ &Mô tả
1 file.closed
Trả về true nếu tệp được đóng, nếu không thì trả về false.
2 file.mode
Trả về chế độ truy cập mà tệp đã được mở.
3 file.name
Trả về tên của tệp.
4 file.softspace
Trả về false nếu không gian được yêu cầu rõ ràng với print, nếu không thì trả về true.

Ví dụ

 #! / usr / bin / python # Open a filefo =open ("foo.txt", "wb") print "Tên của tệp:", fo.nameprint "Đã đóng hay chưa:", fo.closedprint "Chế độ mở:", fo.modeprint "Cờ không gian mềm:", fo.softspace 

Đầu ra

Điều này tạo ra kết quả sau -

 Tên tệp:foo.txt Đã đóng hoặc không:Sai Chế độ mở:wb Cờ không gian mở:0 

Phương thức close ()

Phương thức close () của một đối tượng tệp xóa mọi thông tin không được viết ra và đóng đối tượng tệp, sau đó không thể ghi được nữa.

Python tự động đóng tệp khi đối tượng tham chiếu của tệp được gán lại cho tệp khác. Bạn nên sử dụng phương thức close () để đóng tệp.

Cú pháp

 fileObject.close () 

Ví dụ

 #! / usr / bin / python # Open a filefo =open ("foo.txt", "wb") print "Tên của tệp:", fo.name # Đóng opend filefo.close ()  

Đầu ra

Điều này tạo ra kết quả sau -

 Tên của tệp:foo.txt