相关疑难解决方法(0)

如何使用Ruby删除文本文件中间的数据行

我知道如何写入文件,并从文件中读取,但我不知道如何修改文件,除了将整个文件读入内存,操作它,并重写整个文件.对于大文件,这不是很有效率.

我真的不知道追加和写的区别.

例如

如果我有一个文件包含:

Person1,will,23
Person2,Richard,32
Person3,Mike,44
Run Code Online (Sandbox Code Playgroud)

我怎么能只删除包含Person2的行?

ruby csv file-io ruby-on-rails file

12
推荐指数
2
解决办法
1万
查看次数

如何删除文本文件中的特定行?

假设,我有一个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中删除文本文件中的多行的正确方法是什么?

ruby regex rubygems

4
推荐指数
2
解决办法
6250
查看次数

标签 统计

ruby ×2

csv ×1

file ×1

file-io ×1

regex ×1

ruby-on-rails ×1

rubygems ×1