ruby - 大小读写文件和条件语句
问题描述
初学者学习 Ruby。正在做一个关于读写文件的练习。
name_number = {
}
File.open("book.txt", 'a') do |file|
name_number.each do |name, number|
file.write ("- #{name} #{number}\n")
end
file.close
end
File.open("book.txt", "r") do |file|
if file.size < 1
puts "There are no people in the book."
end
File.open("book.txt", "r") do |file|
puts file.read
end
end
所以它输出“书中没有人”。当文件为空时。
所以如果我们添加一些人......
name_number = {
"Bill" => 87987,
"Kevin" => 78912
}
File.open("book.txt", 'a') do |file|
name_number.each do |name, number|
file.write ("- #{name} #{number}\n")
end
file.close
end
我试图弄清楚如何让它说
1 表示“有一个人”,大于 1 表示“有一些人”。
我想我需要一个elsif
类似这样的声明,(但显然这不起作用,但也许你可以看到我想要实现的目标?)。
File.open("book.txt", "r") do |file|
if file.size < 1
puts "There are no people in the book."
elsif file.size == 1
puts "There is an entry in the book."
elsif file.size == 2
puts "There are two entries in the book"
end
File.open("book.txt", "r") do |file|
puts file.read
end
end
我肯定错过了一些东西。我想知道是否有人可以指出我正确的方向?
解决方案
file.size 为您提供字节数。你可能想要file.readlines .size
推荐阅读
- python - 将数组列表更改为二维数组
- javascript - 为什么我的 Puppeteer .innerText 代码什么也不返回?
- spring - 禁止函数 Bean 被自动发现/注册
- javascript - 在 JavaScript 中使用数组创建动态表单
- android-studio - 如何从 GoogleSignInAccount 获取数据
- python - 如何根据匹配的键:值对组合字典列表中的 N 个字典?
- numpy - 如何从我正在处理的 numpy 数据集中在 Matplotlib 中绘制多个图形?
- error-handling - 我是否应该放弃使用 `and_then` 并始终使用 `?` 运算符?
- python - 如何为for循环内的数据框赋值?
- symfony - LifecycleEventArgs 参数的教义错误