2011-10-28 38 views
6

Làm thế nào để đóng một tập tin trong python sau khi mở nó theo cách này:Làm thế nào để đóng một tập tin trong python mà không gán một biến

line = open("file.txt", "r").readlines()[7]

+0

xem câu trả lời này http://stackoverflow.com/questions/4599980/python-close- file-descriptor-question – unni

+2

Bạn không biết. Bạn cho phép Python đóng nó cho bạn, trong quá trình thu thập rác hoặc khi chương trình kết thúc. Thông thường đây không phải là một vấn đề đó là lý do tại sao nhiều ví dụ mã trong tài liệu Python làm theo cách này. –

+5

@Tim Pietzcker: Trong CPython bạn có thể phụ thuộc vào tính tham chiếu, nhưng nó là một chi tiết triển khai sẽ không hoạt động trong các triển khai khác như PyPy hoặc Jython. Trong trường hợp đó, việc mở quá nhiều tệp có thể làm cạn kiệt các bộ mô tả tệp khả dụng. – eryksun

Trả lời

1

Có nhiều cách, ví dụ như bạn chỉ có thể sử dụng f = open(...)del f .

Nếu phiên bản Python của bạn hỗ trợ nó, bạn cũng có thể sử dụng with tuyên bố:

with open("file.txt", "r") as f: 
    line = f.readlines()[7] 

này sẽ tự động đóng tập tin của bạn.

EDIT: Tôi không hiểu tại sao tôi bị bỏ phiếu để giải thích cách tạo một cách chính xác để xử lý tệp. Có lẽ "mà không gán một biến" là không thích hợp hơn.

+3

Anh ta yêu cầu làm thế nào để làm điều đó mà không cần gán một biến. –

5

Tốt nhất để sử dụng trình quản lý ngữ cảnh. Thao tác này sẽ tự động đóng tệp ở cuối khối và không dựa vào chi tiết triển khai của bộ sưu tập garbarge

with open("file.txt", "r") as f: 
    line = f.readlines()[7] 
+2

@Tim Pietzcker đã viết gì dưới đây. Tôi nhận thức được phương pháp này, tuy nhiên tôi đã tự hỏi liệu có một cách khác xung quanh này, như tôi đã đề cập trong tiêu đề, mà không cần gán một thể hiện tập tin một biến. – 0sh

Các vấn đề liên quan