我知道如何写入文件,并从文件中读取,但我不知道如何修改文件,除了将整个文件读入内存,操作它,并重写整个文件.对于大文件,这不是很有效率.
我真的不知道追加和写的区别.
例如
如果我有一个文件包含:
Person1,will,23
Person2,Richard,32
Person3,Mike,44
Run Code Online (Sandbox Code Playgroud)
我怎么能只删除包含Person2的行?
假设,我有一个input.txt文件,其中包含以下文本:
First line
Second line
Third line
Fourth line
Run Code Online (Sandbox Code Playgroud)
我想删除,例如,第二行和第四行来得到这个:
First line
Third line
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经设法使用此代码仅删除第二行中的一行
require 'fileutils'
File.open('output.txt', 'w') do |out_file|
File.foreach('input.txt') do |line|
out_file.puts line unless line =~ /Second/
end
end
FileUtils.mv('output.txt', 'input.txt')
Run Code Online (Sandbox Code Playgroud)
在Ruby中删除文本文件中的多行的正确方法是什么?