【问题标题】:How do I write to a local file? [duplicate]如何写入本地文件? [复制]
【发布时间】:2013-10-23 21:17:42
【问题描述】:

我正在学习 Ruby,但不知道如何打开和写入本地文件。如何打开文件并向其写入字符串?

【问题讨论】:

  • 如果您花时间阅读the core and standard Ruby libraries 以熟悉可用的内容,那就太好了。即使您不知道所有内容的用途,随着时间的推移您会遇到需求,并且在浏览了几次文档后,您会记得它在某个地方。照原样,您的问题非常基本,IO classes' documentation 很好地解释了。

标签: ruby file


【解决方案1】:

一个班轮

File.open(path, "w") {|f| f.write(string)}

【讨论】:

  • 是的,你是对的,这样做是愚蠢的
【解决方案2】:

你到底想要什么?您要下载照片并保存吗?还是要保存照片的网址?

您可以使用Mechanize 保存照片,因为Mechanize.new.get 会创建一个从给定 URL 和响应正文中检索到的新文件。

file = Mechanize.new.get(url)
file.class #=> Is a file, returns Mechanize::File
file.save('photo.jpg')

您可以使用#save 方法随意命名文件。

或者您可以使用 Ruby File 类将照片的 URL 保存在文件中。

File.open('photo_url.txt', 'w') { |file| file.write(url) }

块终止后,Ruby 会自动关闭文件。

【讨论】:

  • 问题中没有任何内容暗示 OP 想要从 URL 中检索图像。
  • 有,直到被编辑
【解决方案3】:

file阅读

File.read(file)

string 写入file

File.write(file, string)

【讨论】:

  • @DavidLjungMadison,您可能应该更仔细地阅读IO class documentation。 @sawa 的答案是正确的,因为 File 继承自 IO,它具有 readwrite 的类和实例版本。
  • @DavidLjungMadison 不要说谎。它没有在 Ruby 2.0 中添加。它至少在 Ruby 1.9.3 中可用。不要找无用的借口。
  • @DavidLjungMadison 您甚至没有想到要删除您的第一条告诉虚假信息的评论吗?真是令人惊讶。你脑子里只想着要加什么借口?
【解决方案4】:

打开和写入文件是通过 Ruby 的 File 类完成的。这是一个例子。

File.open('path/to/file.txt', 'w') do |file|
  file.write('this is how you write to a file')
end

File#open 的第一个参数是相对文件位置。第二个是mode

【讨论】:

  • 写完后别忘了关闭文件file.close
  • @HM1 如果给出块,文件将自动关闭。
  • 别忘了关闭问题
猜你喜欢
  • 1970-01-01
  • 2019-11-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-03
  • 2017-10-24
  • 2020-10-01
  • 2016-08-25
  • 1970-01-01
相关资源
最近更新 更多