Hướng dẫn do you have to close with python? - bạn có phải đóng cửa với python?

Thông thường khi tôi mở các tệp, tôi không bao giờ gọi phương thức close() và không có gì xấu xảy ra. Nhưng tôi đã nói rằng đây là thực hành xấu. Tại sao vậy?

Hỏi ngày 1 tháng 8 năm 2014 lúc 0:00Aug 1, 2014 at 0:00

Hướng dẫn do you have to close with python? - bạn có phải đóng cửa với python?

1

Đối với hầu hết các phần, không đóng các tệp là một ý tưởng tồi, vì những lý do sau:

  1. Nó đặt chương trình của bạn vào tay người thu gom rác - mặc dù tập tin theo lý thuyết sẽ được đóng tự động, nó có thể không được đóng. Python 3 và Cpython thường làm một công việc khá tốt trong việc thu thập rác, nhưng không phải luôn luôn, và các biến thể khác thường hút nó.

  2. Nó có thể làm chậm chương trình của bạn. Quá nhiều thứ mở ra, và do đó, nhiều không gian được sử dụng hơn trong RAM, sẽ tác động đến hiệu suất.

  3. Đối với hầu hết các phần, nhiều thay đổi đối với các tệp trong Python không có hiệu lực cho đến khi tệp được đóng, vì vậy nếu tập lệnh của bạn chỉnh sửa, để mở và đọc một tệp, nó sẽ không thấy các chỉnh sửa.

  4. Về mặt lý thuyết, bạn có thể chạy đến giới hạn số lượng tệp bạn có thể mở.

  5. Như @SAI đã nêu bên dưới, Windows xử lý các tệp mở là bị khóa, vì vậy những thứ hợp pháp như máy quét AV hoặc các tập lệnh Python khác không thể đọc tệp.

  6. Đó là lập trình cẩu thả (sau đó một lần nữa, tôi không chính xác là tốt nhất trong việc ghi nhớ các tập tin tự mình!)

Hi vọng điêu nay co ich!

Đã trả lời ngày 1 tháng 8 năm 2014 lúc 0:10Aug 1, 2014 at 0:10

rocket101rocket101rocket101

7.21910 Huy hiệu vàng44 Huy hiệu bạc64 Huy hiệu đồng10 gold badges44 silver badges64 bronze badges

Tìm thấy một số câu trả lời tốt:

(1) Đó là vấn đề thực hành lập trình tốt. Nếu bạn không tự đóng chúng, Python cuối cùng sẽ đóng chúng lại cho bạn. Trong một số phiên bản của Python, đó có thể là ngay lập tức chúng không còn được sử dụng; Ở những người khác, nó có thể không xảy ra trong một thời gian dài. Trong một số trường hợp, nó có thể không xảy ra cả.

(2) Khi ghi vào tệp, dữ liệu có thể không được ghi vào đĩa cho đến khi tệp được đóng. Khi bạn nói "output.write (...)", dữ liệu thường được lưu trong bộ nhớ và không nhấn ổ cứng cho đến khi tệp được đóng. Bạn càng mở tệp, cơ hội bạn sẽ mất dữ liệu càng lớn.

. Dọn dẹp sau khi bạn.

(4) Ngoài ra, một số hệ điều hành (đặc biệt là Windows) coi các tệp mở là bị khóa và riêng tư. Mặc dù bạn có một tệp mở, không có chương trình nào khác cũng có thể mở nó, thậm chí chỉ để đọc dữ liệu. Điều này làm hỏng các chương trình sao lưu, máy quét chống vi-rút, v.v.

http://python.6.x6.nabble.com/tutor-thy-do-you-have-to-blose-files-td4341928.html https://docs.python.org/2/tutorial/inpututput.html

Đã trả lời ngày 1 tháng 8 năm 2014 lúc 0:17Aug 1, 2014 at 0:17

Mở tệp sử dụng tài nguyên và có thể bị khóa, ngăn các chương trình khác sử dụng chúng. Dù sao, việc sử dụng with là tốt khi đọc các tệp, vì nó quan tâm đến việc đóng tệp cho bạn.

with open('file', 'r') as f:
   read_data = f.read()

Đây là một ví dụ về một cái gì đó "xấu" có thể xảy ra nếu bạn mở tệp. Mở một tệp để ghi trong trình thông dịch Python của bạn, viết một chuỗi vào nó, sau đó mở tệp đó trong trình chỉnh sửa văn bản. Trên hệ thống của tôi, tệp sẽ trống cho đến khi tôi đóng tay cầm tệp.

Đã trả lời ngày 1 tháng 8 năm 2014 lúc 0:09Aug 1, 2014 at 0:09

Matt Adamsmatt AdamsMatt Adams

7094 Huy hiệu bạc11 Huy hiệu đồng4 silver badges11 bronze badges

1

Phương thức đóng () của một đối tượng tệp sẽ xóa bất kỳ thông tin bất thành văn nào và đóng đối tượng tệp, sau đó không còn viết nữa.

Python tự động đóng một tệp khi đối tượng tham chiếu của tệp được chỉ định lại vào một tệp khác. Đó là một thực tế tốt để sử dụng phương thức đóng () để đóng tệp. Đây là liên kết về phương thức đóng (). Tôi hi vọng cái này giúp được.

Đã trả lời ngày 1 tháng 8 năm 2014 lúc 0:08Aug 1, 2014 at 0:08

Bạn chỉ phải gọi close() khi bạn đang ghi vào một tệp.

Python tự động đóng các tệp hầu hết thời gian, nhưng đôi khi nó sẽ không, vì vậy bạn muốn gọi nó theo cách thủ công chỉ trong trường hợp.

Đã trả lời ngày 1 tháng 8 năm 2014 lúc 0:09Aug 1, 2014 at 0:09

2

Matt Adamsmatt Adams

7094 Huy hiệu bạc11 Huy hiệu đồng

Phương thức đóng () của một đối tượng tệp sẽ xóa bất kỳ thông tin bất thành văn nào và đóng đối tượng tệp, sau đó không còn viết nữa.Aug 1, 2014 at 0:23

Python tự động đóng một tệp khi đối tượng tham chiếu của tệp được chỉ định lại vào một tệp khác. Đó là một thực tế tốt để sử dụng phương thức đóng () để đóng tệp. Đây là liên kết về phương thức đóng (). Tôi hi vọng cái này giúp được.Exceen

Đã trả lời ngày 1 tháng 8 năm 2014 lúc 0:081 gold badge4 silver badges20 bronze badges

Bạn có phải đóng cửa sau khi mở Python không?

Phương thức python close () Phương thức Đóng () Đóng một tệp mở. Bạn nên luôn luôn đóng các tệp của mình, trong một số trường hợp, do bộ đệm, các thay đổi được thực hiện đối với một tệp có thể không hiển thị cho đến khi bạn đóng tệp.You should always close your files, in some cases, due to buffering, changes made to a file may not show until you close the file.

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

Python không xóa bộ đệm, nghĩa là, hãy viết dữ liệu vào tệp, cho đến khi chắc chắn bạn đã viết xong và một cách để làm điều 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 được đưa vào tệp đích.the data won't make it to the target file.

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

Sử dụng câu lệnh Open () sẽ tự động đóng tệp sau khi khối hoàn thành.Không chỉ sử dụng Trình quản lý ngữ cảnh miễn phí bạn khỏi phải nhớ đóng các tệp theo cách thủ công mà còn giúp những người khác đọc mã của bạn dễ dàng hơn nhiều để xem chính xác chương trình sử dụng tệp như thế nào.. Not only will using a context manager free you from having to remember to close files manually, but it will also make it much easier for others reading your code to see precisely how the program is using the file.

Python có đóng tệp tự động không?

Gọi Đóng () hơn một lần được phép.Python tự động đóng một tệp khi đối tượng tham chiếu của tệp được chỉ định lại vào một tệp khác.Đó là một thực tế tốt để sử dụng phương thức đóng () để đóng một tệp.Python automatically closes a file when the reference object of a file is reassigned to another file. It is a good practice to use the close() method to close a file.