Tôi muốn thay đổi một vài tệp cùng một lúc, iff Tôi có thể viết thư cho tất cả chúng. Tôi đang tự hỏi nếu tôi bằng cách nào đó có thể kết hợp nhiều cuộc gọi mở với báo cáo kết quả with
:Làm cách nào để mở nhiều tệp bằng cách sử dụng "có mở" bằng Python?
try:
with open('a', 'w') as a and open('b', 'w') as b:
do_something()
except IOError as e:
print 'Operation failed: %s' % e.strerror
Nếu đó là không thể, điều gì sẽ là một giải pháp thanh lịch cho vấn đề này như thế nào?
Có .. vì vậy mát mẻ rằng một vài dòng mã cho phép làm điều đó trong các phiên bản python trước là tốt, như trong ví dụ này ở đây: http://metapython.blogspot.com/2010/12/multiple-contests-in-with-statement-not.html – jsbueno
Thật không may, theo các tài liệu contextlib.nested, bạn không nên sử dụng nó để mở tệp: "sử dụng lồng nhau() để mở hai tệp là lỗi lập trình vì tệp đầu tiên sẽ không bị đóng ngay nếu ngoại lệ được ném khi mở tệp thứ hai". – weronika
có cách nào để sử dụng 'with' để mở danh sách các tệp không? – monkut