将File.readlines [n]分配给变量

问题描述 投票:0回答:1

我正在阅读一个文本文件,每行都有说明。我想将每行文本分配给它自己的变量。当我这样做时,返回的值为nil,但是当我输出readlines [n]的值时,它是正确的。

例如

# Using the variable (incorrect result)
puts current_zone_size
>

例如

# Using readlines after variable assignment (incorrect result)
current_zone_size = instructions.readlines[0]
instructions.readlines[0]
>

例如

# Using readlines (correct result)
instructions.readlines[0]
> 8 10

这是我的代码:

instructions = File.open("operator-input.txt", "r")

current_zone_size = instructions.readlines[0]
rover_init_location_orientation = instructions.readlines[1]
rover_movements = instructions.readlines[2]

这是正在读取的文件中的文本:

8 10
1 2 E
MMLMRMMRRMML

编辑:文件关闭了吗?如果我不从块内进行变量分配,这就是为什么我无法从File.readlines [n]分配值的原因吗?

此外,该文件将只包含三行,这就是为什么我不使用循环来读取行的原因。

ruby io
1个回答
0
投票

我最终一次读取了所有行,现在我可以在块外设置每个变量。像这样:

instructions = File.readlines "operator-input.txt"

current_zone_size = instructions[0]
rover_init_location_orientation = instructions[1]
rover_movements = instructions[2]

例如

puts current_zone_size
> 8 10
© www.soinside.com 2019 - 2024. All rights reserved.