我是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