Czy w Ruby jest wbudowana funkcja odczytu całego pliku bez użycia pętli? Do tej pory natknąłem się tylko na metody, które czytają w kawałkach (linia lub postać).Jak czytać cały plik w Ruby?
Odpowiedz
IO.read("filename")
lub
File.read("filename")
Dokumenty: http://ruby-doc.org/core/classes/IO.html – quantumSoup
Po prostu z ciekawości, dlaczego nie mogę znaleźć tej funkcji tutaj: http://www.ruby-doc.org/core- 2.1.2/File.html –
@MartinKonecny, ponieważ 'File :: read' jest faktycznie dziedziczony z' IO :: read' - oba są dokładnie takie same, ponieważ 'File' rozszerza' IO'. –
File.readlines("filename")
Jest to również świetny sposób, aby przeczytać wszystko z pliku i przełamać podział na powrotu karetki. Zwrot jest tablicą z jedną linią na element.
Dokładniej, 'readlines' dzieli na wewnętrzną zmienną' $/', która domyślnie przyjmuje wartość" \ n ". Możesz jednak tymczasowo zresetować '$ /' i odczytać pliki na porcje ograniczone w inny sposób. – Telemachus
Proszę zignorować poradę, która stwierdza: "Nigdy nie należy slurpować (co jest irytującym terminem) do pliku". Czasami jest to bardzo przydatne i rozsądne.
Załóżmy, że czytasz plik wielokrotnie: duża szansa, że odczytywanie pliku do tablicy jest sensowną optymalizacją czytania linii pliku po wierszu, nawet biorąc pod uwagę, że o/s spowoduje buforowanie pliku.
Nie zapewnia to odpowiedzi na pytanie. Aby skrytykować lub poprosić o wyjaśnienie od autora, zostaw komentarz pod swoim postem - zawsze możesz komentować swoje posty, a gdy już masz wystarczającą [reputację] (http://stackoverflow.com/help/whats-reputation), być w stanie [komentować dowolny wpis] (http://stackoverflow.com/help/privileges/comment). - [Z recenzji] (/ recenzja/niskiej jakości-posts/10916920) – ndn
Przepraszamy, ale po prostu nie jest zainteresowany pracą w przedstawicielstwie. Porada "nie slurp" jest po prostu błędna. Czasami jest to przydatna technika (właśnie zmniejszyłem czas wykonywania programu o współczynnik 1000 przez odczytanie całego pliku) i nie powinien on być przestarzały. –
Odczytywanie pliku do pamięci w jednym przebiegu (slurping) nie jest szybsze niż linia po linii, gdy plik osiąga rozmiar 1 MB +. Poza tym punktem możesz szybciej czytać wiersz po wierszu i unikać potencjalnych problemów związanych ze skalowalnością. "po prostu źle" nie jest pomocne bez wyjaśnienia, kiedy jest to właściwe. Aby uzyskać więcej informacji, zobacz http://stackoverflow.com/questions/25189262/why-is-slurping-a-file-bad. –
- 1. Jak czytać plik pikle?
- 2. Jak czytać plik tekstowy w systemie Android?
- 3. Android: jak czytać plik w bajtach?
- 4. Jak dekompilować cały plik Jar?
- 5. W Clojure 1.3, Jak czytać i pisać plik
- 6. R: Dlaczego plik read.table przestaje czytać plik?
- 7. jak zminimalizować plik ruby
- 8. Czy plik RandomAccessFile w java odczytuje cały plik w pamięci?
- 9. Jak czytać i wyświetlać plik w rozszerzeniu chrome
- 10. osgi projekt jak czytać plik zasobów w pakiecie
- 11. zamień cały plik na inny plik w bash
- 12. Jak znaleźć cały nieużywany kod w Ruby on Rails
- 13. Benchmarking plik utf8 czytać - wyjaśnienie różnic
- 14. Dlaczego najpierw czytać plik, a następnie sprawdzić?
- 15. Jak przesłać plik w Ruby na szynach?
- 16. Jak wyświetlić plik PDF w ROR (Ruby)?
- 17. Jak czytać plik Excela pomijając pierwsze dwa wiersze
- 18. diff zwraca cały plik identycznych plików
- 19. Jak czytać pdf strumień w angularjs
- 20. Jak czytać/dev/random w pytonie
- 21. Czy możemy zaszyfrować cały plik konfiguracyjny?
- 22. Shibboleth - Jak czytać atrybuty?
- 23. Jak korzystać AsynchronousFileChannel czytać do StringBuffer skutecznie
- 24. Jak czytać bloki komentarzy w PHP?
- 25. Jak czytać wiersz z pliku w PowerShell
- 26. Ruby: Jak załadować plik do interaktywnej konsoli ruby (IRB)?
- 27. odczytać cały plik binarny do tablicy w pojedynczy połączeń C++
- 28. Jak czytać cyrylicę w Unicode w C++?
- 29. Jak wykonać plik wykonywalny z kamieniami ruby
- 30. Jak usunąć wiersze danych w środku pliku tekstowego z Ruby
Dla tego, co jest warte, jest to coś, czego ludzie często chcą, ale tak naprawdę nie potrzebują. (A jeśli plik jest bardzo duży, można uzyskać nieprzyjemną niespodziankę, gdy plik siorbiąc gulety zbliża się do całej dostępnej pamięci.) Co ostatecznie próbujesz osiągnąć? – Telemachus
Znalazłem to bardzo pomocne w pracy z plikiem, który nie był w formacie codziennym. Czytałem plik w kodowaniu IBM437 i musiałem złamać plik w dziwnych postaciach, aby oddzielić cenne dane od rzeczy, których nie potrzebowałem. W tym celu sensowne było odczytanie całego pliku, a następnie tworzenie własnych podziałów linii tam, gdzie powinny być. W przeciwnym razie przechodziłbym przez każdą linię lub każdą postać. Zamiast tego mógłbym po prostu użyć tego do odczytania pliku, a następnie użyć podziału, aby podzielić plik na ciągi znaków drukowalnych, a następnie użyć bloku, aby określić zestawy danych, których potrzebuję. – ndw
Polecam lekturę: http://stackoverflow.com/questions/25189262/why-is-slurping-a-file-bad. –