2016-05-13 118 views
1

我有一行按行分隔的名称列表(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 

回答

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。如果这是这个解决方案的真正目标,那么这将是一个更大的实现,并且需要定义一些设计考虑因素。

+0

谢谢。由于删除该行不切实际,是否可以在该行的开头添加一个字符(将其标记为完成?) – Onichan

+0

这是可能的,并且如果'names.txt'文件将(相当)小,我们可以在处理后重写文件,省略第一行。这个文件很大或可管理吗? –

+0

实际上,我认为生病只是将每行迭代的当前行写入新文件。然后我会知道处理了哪一行。这是更实际的方法吗? – Onichan

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