这很难解释,我也没有找到答案。
我希望能够在Ruby中读取.txt文件,并且能够以某种方式打印行号。
示例:
function setGlobal() {
var shouldNotBeGlobal = 'but it is!';
}
setGlobal();
console.log(window.shouldNotBeGlobal) // "undefined"
我希望这是有道理的,我希望这很容易。
预先感谢, 里斯
答案 0 :(得分:2)
您可以使用Enumerable#each_with_index
:
为每个项目调用带有两个参数(项目及其索引)的块 在枚举中。给定的参数将传递给each()。
File.open(filename).each_with_index do |line, index|
p "#{index} #{line}"
end
答案 1 :(得分:2)
Ruby与Perl一样,具有特殊变量$.
,该变量包含文件的行号。
File.open("file.txt").each do |line|
puts line, $.
end
打印:
#Hello
1
#My name is John Smith
2
#How are you?
3
如果您希望数字在同一行上,请从\n
剥离line
:
File.open("file.txt").each do |line|
puts "#{line.rstrip} #{$.}"
end
#Hello 1
#My name is John Smith 2
#How are you? 3
如注释中所述,除了使用File.open
之外,还可以使用File.foreach并在块末尾使用自动关闭功能:
File.foreach('file.txt') do |line|
puts line, $.
end
# same output...