Когда я начала печати строк из файла, я получаю эту ошибкуПечать строки из файла в рубине
#<File:0x007ff65ee297b0>
Вот код
require 'rubygems'
File.open("sample.txt", 'r') do |f|
puts f
end
Когда я начала печати строк из файла, я получаю эту ошибкуПечать строки из файла в рубине
#<File:0x007ff65ee297b0>
Вот код
require 'rubygems'
File.open("sample.txt", 'r') do |f|
puts f
end
Другой способ:
IO.foreach("sample.txt") {|line| line }
Или
File.foreach('sample.txt') {|line| line }
File::open
возвращает дескриптор файла (который, видимо, в настоящее время распечатано как #<File:0x007ff65ee297b0>
.) Если вам нужно, чтобы содержимое файла было построчно, вы можете использовать IO::readlines
:
IO.readlines("sample.txt").each do |line|
puts line
end
Вы печатаете объект файла. Для того, чтобы получить линию содержимого по линии, вы можете использовать File.foreach
File.foreach('sample.txt', 'r') do |line|
puts line # called for every line
end
Чтобы обработать весь файл сразу, вы можете использовать метод read
на файле объекта:
File.open('sample.txt', 'r') do |file|
puts file.read # called only once
end
Это не ошибка. Он правильно печатает одну строку, которая является вашим файлом. Здесь вы создаете файл-объект, и вы не просили его брать строки или что-то еще в этом случае.
Несколько полезных ответов уже есть. Но вот еще один способ сделать это с минимальным изменением кода:
File.open("sample.txt", 'r').each_line do |f|
puts f
end
Это не ошибка. Он печатает файл-объект – tihom
Что вы думаете? – sawa