Bạn có cần đóng tệp khi đọc nó trên python không?

Trên thực tế không có gì xảy ra như vậy, nhưng sau đó người ta giải thích rằng, trong quá trình I/O, dữ liệu được lưu vào bộ đệm. điều này có nghĩa là chúng được giữ ở một vị trí tạm thời trước khi được ghi vào tệp. Python không xóa bộ đệm—nghĩa là ghi dữ liệu vào tệp—cho đến khi chắc chắn rằng bạn đã viết xong và một cách để thực hiện việc này là đóng tệp. Nếu bạn ghi vào một tệp mà không đóng, dữ liệu sẽ không chuyển đến tệp đích. Nhưng sau khi lướt web, tôi biết rằng 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. Đó là một cách thực hành tốt để sử dụng phương thức close[] để đóng tệp. vì vậy hãy luôn làm sạch bản thân của bạn;]

Cho đến bây giờ, bạn đã đọc và ghi vào đầ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 với tệp theo mặc định. Bạn có thể thực hiện hầu hết thao tác tệp bằng đối tượng tệp

Chức năng mở 

Trước khi bạn có thể đọc hoặc ghi một tệp, bạn phải mở tệp đó bằng hàm open[] tích hợp sẵn của Python. Hàm này tạo một đối tượng tệp, đối tượng này 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]]

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ôi. e. , đọc, viết, chắp thêm, 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 là đọc [r]
  • đệm - Nếu giá trị đệ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]

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

Sr. NoModes & Description1r
Mở tệp chỉ để đọc. Con trỏ tệp được đặt ở đầu tệp. Đây là chế độ mặc định.
2rb
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.
3r+
Mở tệp để đọc và ghi. Con trỏ tệp đặt ở đầu tệp.
4rb+
Mở tệp để đọc và ghi ở định dạng nhị phân. Con trỏ tệp đặt ở đầu tệp.
5w
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.
6wb
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.
7w+
Mở tệp để ghi và đọc. Ghi đè lên 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.
8wb+
Mở tệp để ghi và đọc ở định dạng nhị phân. Ghi đè lên 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.
9a
Mở tệp để nối thêm. Con trỏ tệp ở cuối tệp nếu tệp tồn tại. Tức là tệp đang ở chế độ chắp thêm. Nếu tệp không tồn tại, nó sẽ tạo một tệp mới để ghi.
10ab
Mở tệp để nối thêm ở đị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ế độ chắp thêm. Nếu tệp không tồn tại, nó sẽ tạo một tệp mới để ghi.
11a+
Mở tệp để thêm và đọc. Con trỏ tệp ở cuối tệp nếu tệp tồn tại. Tệp mở ở chế độ chắp 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.
12ab+
Mở tệp để thêm 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 mở ở chế độ chắp 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

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

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

Sr. NoModes & Description1file. đã đóng
Trả về true nếu tệp bị đóng, ngược lại trả về false.
2tệp. mode
Trả về chế độ truy cập mà tệp đã được mở.
3tệp. name
Trả về tên của tệp.
4tệp. softspace
Trả về false nếu không gian được yêu cầu rõ ràng khi in, ngược lại là true.

Ví dụ

Bản thử trực tiếp

#!/usr/bin/python

# Open a file
fo = open["foo.txt", "wb"]
print "Name of the file: ", fo.name
print "Closed or not : ", fo.closed
print "Opening mode : ", fo.mode
print "Softspace flag : ", fo.softspace

đầu ra

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

Name of the file: foo.txt
Closed or not : False
Opening mode : wb
Softspace flag : 0

Phương thức đóng[] 

Phương thức close[] của một đối tượng tệp sẽ xóa mọi thông tin chưa được ghi và đóng đối tượng tệp, sau đó không thể ghi thêm 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. Đó là một cách thực hành tốt để sử dụng phương thức close[] để đóng tệp

Tôi có nên đóng tệp sau khi mở Python không?

Tại sao phải đóng tệp?

Khi nào tôi nên đóng tệp bằng Python?

Phương thức close[] của một đối tượng tệp xóa mọi thông tin chưa được ghi và đóng đối tượng tệp, sau đó không thể ghi thêm 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 . Đó là một cách thực hành tốt để sử dụng phương thức close[] để đóng tệp.

Điều gì xảy ra nếu tôi không đóng tệp bằng Python?

Python không xóa bộ đệm—nghĩa là ghi dữ liệu vào tệp—cho đến khi chắc chắn rằng bạn đã viết xong và một cách để thực hiện việc này là đóng tệp. Nếu bạn ghi vào một tệp mà không đóng, dữ liệu sẽ không chuyển đến tệp đích .

Chủ Đề