将行从一个文本文件移到另一个文本文件

时间:2016-05-13 23:29:32

标签: ruby-on-rails ruby

我有一个由行分隔的名称列表(names.txt)。在我遍历每一行之后,我想将其移动到另一个文件(processed.txt)。

我当前的实现遍历每一行:

open("names.txt") do |csv|
  csv.each_line do |line|
    url = line.split("\n")
    puts url
    # Remove line from this file amd move it to processed.txt
  end
end

2 个答案:

答案 0 :(得分:1)

你可以这样做:

File.open('processed.txt', 'a') do |file|
  open("names.txt") do |csv|
    csv.each_line do |line|
      url = line.chomp
      # Do something interesting with url...
      file.puts url
    end
  end
end

这将导致processed.txt包含使用此代码处理的所有网址。

注意:使用此方法删除names.txt中的行是不切实际的。有关详细信息,请参阅How do I remove lines of data in the middle of a text file with Ruby。如果这是此解决方案的真正目标,那么它将是一个更大的实现,需要定义一些设计注意事项。

答案 1 :(得分:1)

def readput 
  @names = File.readlines("names.txt") 
  File.open("processed.txt", "w+") do |f| 
    f.puts(@names) 
  end 
end