所以我有这个程序可以传递一个字符串(这个字符串是它应该读取的文件的路径)
现在我有一个必须打开该文件的方法。用Gsub更改文本,然后再输出该文件(原始文件无法编辑)但我最终需要输出更改的文件
这是我用来更改文件的方法(简化)
def self.changeFile(myfile)
myfile = @path
doc = File.open(myfile)
text = doc.read
text.gsub!("change" , "changed")
return text
这个问题是我把整个文件作为字符串返回。我的其他方法使用"字符串"的输入。路径名
所以我的问题是,无论如何我可以将文本写入我在内存中更改的文件,所以没有实际更改原始文件?
我正在考虑使用" Tempfile"或" StringIO"但我不知道这是不是正确的事情
感谢所有帮助
答案 0 :(得分:0)
你可以使用太阳穴:
def self.changeFile(myfile)
myfile = @path
tempfile = Tempfile.new("changed")
tempfile << File.open(myfile).read.gsub("change" , "changed")
tempfile.close
tempfile.path
end