Ruby在一行代码中读取/写入文件



我是Ruby的新手,我正在计算一些数据,我被这个愚蠢的问题卡住了。我需要将1个文件的内容复制到1行代码中的新文件

第一次尝试:

File.open(out, 'w').write(File.open(in).read)

很好,但这是错误的,我需要关闭文件:

File.open(out, 'w') { |outf| outf.write(File.open(in).read) }

然后关闭read:

File.open(out, 'w') { |outf| File.open(in) { |inf| outf.write(outf.read)) } }

这就是我想出来的,但它看起来不像一行代码:(

想法?

认为,

Ruby 1.9.3及以后版本有

File.write(name, string, [offset], open_args)

命令,允许您直接写入文件。name是文件名,string是你想写的内容,其他参数我都不知道。

它的一些链接:https://github.com/ruby/ruby/blob/ruby_1_9_3/NEWS, http://bugs.ruby-lang.org/issues/1081(滚动到底部)

有很多方法。可以简单地调用命令行,例如:

`cp path1 path2`

但我猜你在找这样的东西:

File.open('foo.txt', 'w') { |f| f.write(File.read('bar.txt')) }

您可以这样做:

File.open(out_file, "w") {|f| f.write IO.read(in_file)}

您可以尝试:

IO.binwrite('to-filename', IO.binread('from-filename'))

查看ruby文档:

IO:: binwrite,IO:: binread

相关内容

  • 没有找到相关文章

最新更新