10

为了编写更简洁的代码...

IO.popen("Generate a list of files").readlines.each{ |line|
   chomped_line = line.chomp
   # ...
}
4

4 回答 4

25
IO.popen("Generate a list of files").readlines.map(&:chomp)
于 2010-09-20T10:55:05.643 回答
4
# Example 1
File.readlines("file.txt").each{|line| line.chomp!}

# Example 2
File.readlines("file.txt").map(&:chomp)

# Example 3
File.open("file.txt", "r"){|file| file.readlines.collect{|line| line.chomp}}
于 2014-09-18T20:26:01.823 回答
3
IO.read("something").split($/)

$/ 是分隔符字符串。IO.read 读取后关闭文件。

于 2010-09-20T14:07:13.077 回答
1

我会让它更快,消耗更少的内存:

  1. 使用“each_line”而不是“readlines.each”。为什么要一次读取整个输出?
  2. 使用“咀嚼!” (感叹号)就地更改字符串。

然后是:

IO.popen( "generate_lines").each_line { |line|
    line.chomp!
    do_something_with line
}
于 2013-11-14T15:09:48.020 回答