Trong Ruby, bạn có thể đọc từ một tệp bằng cách sử dụng s = File.read(filename). Câu ngắn nhất và rõ ràng nhất mà tôi biết trong Python là
with open(filename) as f:
s = f.read()
Có cách nào khác để làm điều đó giúp nó ngắn hơn (tốt nhất là một dòng) và dễ đọc hơn không?
Lưu ý: ban đầu tôi diễn đạt câu hỏi là "thực hiện điều này trong một dòng mã". Như đã chỉ ra bởi S.Lott, ngắn hơn không cần thiết có nghĩa là dễ đọc hơn. Vì vậy, tôi nói lại câu hỏi của mình chỉ để làm rõ ý tôi. Tôi nghĩ rằng mã Ruby tốt hơn và dễ đọc hơn không nhất thiết vì nó một dòng so với hai dòng (mặc dù điều đó cũng quan trọng), mà còn bởi vì nó là một phương thức lớp đối lập với một phương thức thể hiện, điều này không đặt ra câu hỏi về việc ai đóng tệp, làm thế nào để đảm bảo nó được đóng ngay cả khi một ngoại lệ được đưa ra, v.v. Như đã chỉ ra trong các câu trả lời bên dưới, bạn có thể dựa vào GC để đóng tệp của mình (do đó làm cho tệp này trở thành một lớp lót), nhưng điều đó làm cho mã trở nên tồi tệ hơn mặc dù nó ngắn hơn. Không chỉ bởi không thể di chuyển mà còn làm cho nó không rõ ràng.