Ruby简单读/写文件(复制文件)

时间:2015-07-18 03:50:27

标签: ruby

我正在练习Ruby,我正在尝试将文件“从”复制到文件“到”。你能告诉我我做错了吗?

谢谢!

anm_catogery

2 个答案:

答案 0 :(得分:1)

您无法执行data.close - data.class会显示您有String.close不是有效String方法。通过以您选择的方式打开from,您在使用File后将read引用丢失了。解决这个问题的一种方法是:

from = "1.txt"
to = "2.txt"
infile = open(from)  # Retain the File reference
data = infile.read   # Use it to do the read
out = open(to, 'w')
out.write(data)
out.close
infile.close         # And finally, close it

答案 1 :(得分:1)

也许我错过了这一点,但我认为这样写的更像是'红宝石'

from = "1.txt"
to = "2.txt"
contents = File.open(from, 'r').read
File.open(to, 'w').write(contents)

但是,就个人而言,我喜欢使用操作系统终端来执行文件操作。这是关于linux的一个例子。

from = "1.txt"
to = "2.txt"
system("cp #{from} #{to}")

对于Windows,我相信你会使用..

from = "1.txt"
to = "2.txt"
system("copy #{from} #{to}")

最后,如果您需要输出命令以进行某种记录或其他原因,我会使用反引号。

#A nice one liner
`cp 1.txt 2.txt`

这是系统和反引号方法文档。 http://ruby-doc.org/core-1.9.3/Kernel.html