Có chức năng trong xây dựng trong Ruby để đọc toàn bộ tập tin mà không sử dụng bất kỳ vòng lặp nào không? Cho đến nay, tôi đã chỉ đi qua các phương pháp mà đọc trong khối (dòng hoặc ký tự).Làm thế nào để đọc toàn bộ tập tin trong Ruby?
Trả lời
IO.read("filename")
hoặc
File.read("filename")
Documents: http://ruby-doc.org/core/classes/IO.html – quantumSoup
Chỉ cần tò mò, tại sao tôi không thể tìm thấy chức năng này ở đây: http://www.ruby-doc.org/core- 2.1.2/File.html –
@MartinKonecny vì 'File :: read' thực sự được kế thừa từ' IO :: read' - cả hai đều giống hệt nhau vì 'File' mở rộng' IO'. –
File.readlines("filename")
Đây cũng là một phương pháp tuyệt vời để đọc tất cả mọi thứ từ một tập tin và phá vỡ phân chia trên xuống dòng. Sự trở lại là một mảng với một dòng cho mỗi phần tử.
Cụ thể hơn, 'readlines' chia thành biến nội bộ' $/', mặc định là" \ n ". Bạn có thể tạm thời đặt lại '$ /', tuy nhiên, và đọc các tệp thành các phần được giới hạn theo các cách khác. – Telemachus
Vui lòng bỏ qua lời khuyên cho biết "Bạn không bao giờ nên slurp (đó là thuật ngữ gây phiền nhiễu cho điều này) một tệp". Đôi khi đây là một điều rất hữu ích và hợp lý để làm.
Giả sử bạn đang đọc tệp nhiều lần: cơ hội tốt để đọc tệp vào mảng là một tối ưu hóa hợp lý khi đọc từng dòng tệp, thậm chí có tính đến việc o/s sẽ lưu tệp.
Điều này không cung cấp câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ từ tác giả, để lại nhận xét bên dưới bài đăng của họ - bạn luôn có thể nhận xét về bài đăng của riêng bạn và sau khi bạn có đủ [danh tiếng] (http://stackoverflow.com/help/whats-reputation), bạn sẽ có thể [nhận xét về bài đăng bất kỳ] (http://stackoverflow.com/help/privileges/comment). - [Từ đánh giá] (/ review/low-quality-posts/10916920) – ndn
Xin lỗi, nhưng đơn giản là không quan tâm đến việc làm việc cho một đại diện. Những lời khuyên để "không slurp" chỉ là đồng bằng sai. Đôi khi nó là một kỹ thuật hữu ích (tôi vừa giảm thời gian chạy của một chương trình theo hệ số 1000 bằng cách đọc toàn bộ tập tin), và không nên bị phản đối. –
Đọc một tập tin vào bộ nhớ trong một lần (slurping) không phải là nhanh hơn so với từng dòng một khi tệp đạt kích thước 1MB +. Ngoài ra, bạn có thể đọc từng dòng nhanh hơn và tránh các vấn đề về khả năng mở rộng tiềm năng. "chỉ đơn giản là sai" là không hữu ích nếu không giải thích khi nào là thích hợp. Xem http://stackoverflow.com/questions/25189262/why-is-slurping-a-file-bad để biết thêm thông tin. –
- 1. Đọc toàn bộ tập tin trong Lua
- 2. Làm thế nào để sử dụng Boost :: Spirit :: Lex để lex một tập tin mà không cần đọc toàn bộ tập tin vào bộ nhớ đầu tiên?
- 3. Làm thế nào để tạo một chuỗi Ruby an toàn cho một hệ thống tập tin?
- 4. Làm thế nào để đổ toàn bộ dữ liệu POST vào một tập tin trong ASP.NET
- 5. Làm thế nào để đọc tập tin tuần tự hadoop?
- 6. Làm thế nào để đọc một tập tin trong Groovy thành một chuỗi?
- 7. Perl: Làm thế nào để loại bỏ dòng đầu tiên của một tập tin mà không đọc và sao chép toàn bộ tập tin
- 8. Đọc một tập tin trong khối trong Ruby
- 9. Làm thế nào để đọc tập tin cục bộ (Client) với GWT?
- 10. Có cách nào suy ra định dạng hình ảnh của tập tin không, không đọc toàn bộ tập tin?
- 11. Ruby đọc/ghi vào tập tin trong 1 dòng mã
- 12. đọc toàn bộ tập tin nhị phân thành một mảng trong single gọi C++
- 13. Đọc toàn bộ tập tin văn bản thành một mảng char trong C
- 14. Làm thế nào để tránh vấp ngã trên UTF-8 BOM khi đọc các tập tin
- 15. Làm thế nào để buộc std :: stringstream operator >> để đọc toàn bộ chuỗi?
- 16. Làm thế nào để đọc nội dung tập tin vào một biến trong một tập tin thực thi?
- 17. Đọc một tập tin nằm trong bộ nhớ với libavformat
- 18. Làm thế nào để giải nén một tập tin trong Ruby on Rails?
- 19. Ruby: Làm thế nào để xác định xem tập tin được đọc là nhị phân hay văn bản
- 20. Làm cách nào để đọc/phát tệp mà không tải toàn bộ tệp vào bộ nhớ?
- 21. làm thế nào để ngừng đọc từ tập tin trong C
- 22. Làm thế nào để đọc dữ liệu từ một tập tin trong Lua
- 23. Làm thế nào để đọc một tập tin vào vector trong C + +?
- 24. Làm thế nào để đọc cho phép tập tin Linux lập trình trong C/C++
- 25. Làm thế nào để đọc một tập tin cấu hình trong Java
- 26. Bình: Làm thế nào để đọc một tập tin trong thư mục gốc của ứng dụng?
- 27. làm thế nào để đọc một tập tin csv theo thứ tự ngược trong python
- 28. làm thế nào để đóng FileInputStream trong khi đọc các tập tin bất động sản
- 29. Làm thế nào để tải lên một tập tin trong ruby trên đường ray?
- 30. Làm thế nào để xóa các tập tin trong amazon S3 từ ruby
Đối với những gì đáng giá, đây là điều mà mọi người thường muốn nhưng không thực sự cần. (Và nếu tập tin là rất lớn, bạn có thể nhận được một bất ngờ khó chịu khi tập tin slurping gobbles gần tất cả bộ nhớ có sẵn của bạn.) Cuối cùng bạn đang cố gắng để thực hiện là gì? – Telemachus
Tôi thấy điều này rất hữu ích khi làm việc với một tệp không có định dạng hàng ngày. Tôi đã đọc một tập tin trong IBM437 mã hóa và cần thiết để phá vỡ các tập tin tại các nhân vật kỳ quặc, để tách các dữ liệu có giá trị từ những thứ tôi không cần. Cho rằng nó có ý nghĩa để đọc toàn bộ tập tin và sau đó tạo ra các ngắt dòng của riêng tôi, nơi họ nên được. Nếu không tôi sẽ đi qua mỗi dòng hoặc mỗi nhân vật. Thay vào đó, tôi có thể sử dụng đơn giản này để đọc tệp và sau đó sử dụng tính năng chia tách để tách tệp tại chuỗi ký tự có thể in và sau đó sử dụng khối để xác định tập hợp dữ liệu tôi cần. – ndw
Tôi khuyên bạn nên đọc http://stackoverflow.com/questions/25189262/why-is-slurping-a-file-bad. –