在Ruby中是否有內置的函數來讀取整個文件而不使用任何循環?到目前爲止,我只會遇到以塊(線或字符)讀取的方法。如何在Ruby中讀取整個文件?
回答
IO.read("filename")
或
File.read("filename")
文檔:http://ruby-doc.org/core/classes/IO.html – quantumSoup 2010-07-25 08:13:37
只是出於好奇,爲什麼我不能在這裏找到這個功能:http://www.ruby-doc.org/core- 2.1.2/File.html – 2014-06-19 20:10:24
@MartinKonecny由於'File :: read'實際上是從'IO :: read'繼承來的 - 它們都是完全相同的,因爲'File'擴展了'IO'。 – 2014-08-19 03:22:45
File.readlines("filename")
這也是閱讀一切從文件和回車打破分割一個偉大的方法。返回值是一個數組,每個元素包含一行。
更具體地說,'readlines'在內部變量'$ /'上分割,默認爲「\ n」。但是,您可以暫時重置'$ /',並將文件讀入以其他方式分隔的塊。 – Telemachus 2010-07-25 12:32:10
請忽略建議,其中指出「你永遠不應該啜泣(這是一個令人討厭的術語)一個文件」。有時候,這是一個非常有用和明智的事情。
假設您正在重複讀取文件:即使考慮到o/s將緩存文件,將文件讀入數組的好處是逐行讀取文件的明智優化。
這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 - [來自評論](/ review/low-quality-posts/10916920) – ndn 2016-01-17 02:32:05
對不起,但根本沒興趣處理代表。對「不流氓」的建議顯然是錯誤的。它有時是一種有用的技術(我只是通過讀取整個文件將程序的運行時間減少了1000倍),並且不應該被棄用。 – 2016-01-18 08:36:24
一旦一個文件達到1MB +的大小,一次讀取文件到內存中(sl))沒有比逐行更快的速度。除此之外,您可以更快地逐行閱讀,並避免潛在的可伸縮性問題。 「只是錯誤的」沒有解釋什麼時候是合適的沒有幫助。有關更多信息,請參閱http://stackoverflow.com/questions/25189262/why-is-slurping-a-file-bad。 – 2016-12-15 17:45:40
- 1. 在Scala中讀取整個文件?
- 2. 如何使用libxml-ruby在Ruby中讀取大型XML文件?
- 3. 如何在ruby中讀取csv文件的文件名
- 4. 如何使用Ruby讀取文件?
- 5. 在一個文件夾中讀取整個文件
- 6. 如何從文件中讀取文本到ruby中的數組
- 7. VBS不讀取整個文本文件
- 8. C++讀取整個文本文件
- 9. 用Ruby gem'Yomu'讀取多個文件
- 10. 如何使用Ruby在Hadoop HDFS中寫入/讀取文件?
- 11. 如何在讀取Ruby中的文件時刪除換行符
- 12. 如何在Ruby中一次讀取文件,字節?
- 13. 如何在Ruby on Rails中讀取遠程文件的內容?
- 14. 如何在Ruby中從下到上讀取文件?
- 15. 如何使用特定腳本在Ruby中讀取文件?
- 16. 如何在Ruby中讀取文件的行
- 17. 讀取文件使用Ruby
- 18. 如何從文件讀取整數,然後在該文件中的整數(Python)之後讀取多行?
- 19. 如何在一個文件夾中逐個讀取.DAT文件
- 20. 如何在Python中讀取整個文件?在命令行中通用工作
- 21. 如何在PHP中只讀取某個文件中的文件
- 22. 如何在二進制文件中讀取整數和日期
- 23. 如何在Windows中完整讀取大於4GB的文件?
- 24. 如何在bash中用逗號分隔整數讀取文件
- 25. 如何從2個文件中讀取
- 26. GZipStream不讀取整個文件
- 27. MFC:讀取整個文件緩衝
- 28. 從文件讀取一個整數
- 29. FileMode.Append是否讀取整個文件?
- 30. Bufferedreader無法讀取整個文件
對於什麼是值得的,這是人們經常想要的東西,但並不真正需要。 (如果文件非常大,當文件在您的所有可用內存附近咕嚕咕嚕地發出咕嚕聲時,您可能會感到非常驚訝。)您最終想要完成什麼? – Telemachus 2010-07-25 12:00:07
我發現這對於處理不是每天格式的文件非常有幫助。我正在IBM437編碼中讀取一個文件,並需要用古怪的字符打破文件,將有價值的數據從我不需要的東西中分離出來。爲此,閱讀整個文件然後創建自己的換行符應該是合理的。否則,我會傳遞每行或每個字符。相反,我可以簡單地使用它來讀取文件,然後使用split以可打印字符的字符串打破文件,然後使用塊來確定我需要的數據集。 – ndw 2013-03-29 22:15:59
我建議閱讀http://stackoverflow.com/questions/25189262/why-is-slurping-a-file-bad。 – 2016-12-15 17:41:21