从Ruby中的文件读取列表

从Ruby中的文件读取列表,ruby,file,list,Ruby,File,List,我有一个txt文件,其中包含以下格式的数据: X1-Y1 X2 Y2 等等 我想从这个文件中读取数据,并用ruby创建两个列表(X包含X1,X2,Y包含Y1,Y2)。我怎么用Ruby做这个 谢谢。如果您正好有两列,请选择类似的内容: one = Array.new two = Array.new File.open("filename") do |file| while line = file.gets one << line.split[0] two &

我有一个txt文件,其中包含以下格式的数据:

X1-Y1

X2 Y2

等等

我想从这个文件中读取数据,并用ruby创建两个列表(X包含X1,X2,Y包含Y1,Y2)。我怎么用Ruby做这个


谢谢。

如果您正好有两列,请选择类似的内容:

one = Array.new
two = Array.new

File.open("filename") do |file|
   while line = file.gets
     one << line.split[0]
     two << line.split[1]
  end
end 
one=Array.new
二=数组。新
文件。打开(“文件名”)do |文件|
而line=file.get
一个伪码

File.new("source.txt", "r").each_line do |line|
  x, y = line.split
  xs << x
  ys << y
end
File.new(“source.txt”,“r”)。每行|
x、 y=直线分割

xs对于这样的事情,我更喜欢使用
readlines
方法

x = []
y = []
File.readlines(filename).each do |line|
  x << line.split[0]
  y << line.split[1]
end
真正的一行:

x, y = File.foreach("filename").collect {|line| line.split}.transpose

您可以使用
File.foreach(文件名)
而不是
File.readlines(文件名)。每个
都可以避免将整个文件加载到内存中。另外,您正在执行两次
split()
,这是不必要的。非常正确的Mladen,您还可以将split分配给一个变量并使用该变量。
x, y = File.foreach("filename").collect {|line| line.split}.transpose