我有一个名为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
答案 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