我正在练习Ruby,我正在尝试将文件“从”复制到文件“到”。你能告诉我我做错了吗?
谢谢!
anm_catogery
答案 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