Ruby文件处理
Ruby对文件的读写处理其实和其他高级语言是相似的:
创建文件对象,使用文件对象关联文件并打开(
File.open()
)读写文件并处理逻辑
处理完成后必须明确关闭文件
读取文件
filename = ARGV[0]
file = File.open(filename)
text = file.read
print text
file.close
直接读取的简化
对于小文件 ( 大文件全量加载非常消耗内存且缓慢
),完整的 open => read => close
过程可以简化缩写为一个 read
方法:
简化read
filename = ARGV[0]
text = File.read(filename)
print text
最后,还能够 浓缩 为一句话的程序:
一句话简化read
print File.read(ARGV[0])
警告
一下子读取全部文件内容非常耗时
由于读取的文件内容会暂时保存在内存中,所以遇到大文件时,程序可能会因此崩溃
为了避免上述问题,通常采用的方法是逐行处理文件内容
逐行处理文件
模拟
grep
的simple_grep.rb
:
simple_grep.rb
pattern = Regexp.new(ARGV[0])
filename = ARGV[1]
file = File.open(filename)
file.each_line do |line|
if pattern =~ line
print line
end
end
file.close
参考
「Ruby基础教程」