【发布时间】:2010-02-21 07:36:36
【问题描述】:
我正在尝试解析每行包含可变数量的单词和数字的文本文件,如下所示:
foo 4.500 bar 3.00
1.3 3 foo bar
如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach 方法以使用空格而不是换行符作为分隔符?
【问题讨论】:
我正在尝试解析每行包含可变数量的单词和数字的文本文件,如下所示:
foo 4.500 bar 3.00
1.3 3 foo bar
如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach 方法以使用空格而不是换行符作为分隔符?
【问题讨论】:
你可以使用
open('file.txt').read.split.each
为您提供一个以空格(或换行符)分隔的单词的迭代器。
【讨论】:
File.open("file.txt").read.split(" ").each
【讨论】:
接受的答案将slurp 文件,这可能是大文本文件的问题。
更好的解决方案是IO.foreach。它是惯用的,将按字符流式传输文件:
File.foreach(filename," ") {|string| puts string}
包含"this is an example" 结果的示例文件
"this"
"is"
"an"
"example"
【讨论】: