从文本文件中删除一行信息

时间:2015-03-04 00:13:21

标签: ruby

我有一个名为text.txt的文本文件,它有以下文字:

123,shirt,9.99 
234,pants,19.50
456,socks,3.99

如何删除一行(例如123,衬衫,9.99)。我该如何删除这一行?

到目前为止我的代码:

 test_file = File.new('text.txt', "a")
 while (line = test_file)
   puts 'Enter the products item number you wish to delete. '
   user_delete = gets.chomp.to_i
   line.delete(user_delete)
 end

2 个答案:

答案 0 :(得分:1)

你在这里犯了很多错误。

首先使用a打开文件(您需要使用r+w+)。

在Ruby中,我们使用more elegant来迭代文件。

检查this answer,它可以帮助您解决问题。

然后看看IO library以了解它是如何工作的

答案 1 :(得分:1)

我想有很多更好的方法可以做到这一点,但这里很快又很脏:

puts "What's the item number?"
item_num = gets.chomp

read_file = File.new('read.txt', "r").read
write_file = File.new('read.txt', "w")

read_file.each_line do |line|
  write_file.write(line) unless line.include? item_num
end