【问题标题】:Pushin each_line into array not working将 each_line 推入数组不起作用
【发布时间】:2010-06-08 09:01:13
【问题描述】:

我对 Ruby 有一个奇怪的问题。我想从文件中读取数据并将数据放入数组中。 奇怪的是,它在另一个脚本中工作,基本上做同样的事情。

quoteArray = []
quoteFile = File.new("quotes.txt", "r") or die "Unable to open file..."
quoteFile.each_line { |line| quoteArray.push line }
puts quoteArray[0]

我得到的只是一个数组,其中有一个元素,整个文本文件都在其中。怎么了?是我的机器吗?文本文件?有什么想法吗?

提前致谢

【问题讨论】:

  • 让你在你的块#each_line 中打印行变量。如果你看到一些数据,你的文件是好的。
  • 我不明白你的意思。能不能描述的更详细一点?

标签: ruby arrays push


【解决方案1】:
quoteFile = File.read("quotes.txt").gsub(/\n?\r/, "\n").lines.to_a

【讨论】:

  • 如此简单直接。非常感谢!
【解决方案2】:

您正在打印quoteArray[0]。尝试打印quoteArray.inspect,看看你会得到什么。

【讨论】:

  • inspect 给我一个带有 \r 的 looong 字符串。我假设它与错误的行尾有关。你知道我现在应该做什么吗?
【解决方案3】:

它对我来说很好用。确保您的文本文件中包含多行,而不仅仅是一个大行。

【讨论】:

  • 由于我不确定我的文件是否足够有效,所以我已将其上传,以便您自己查看。 dl.dropbox.com/u/6102/tmp/quotes.zip
  • 您的文本文件没有换行符,而是有回车猜测,这就是为什么它在一行中获取整个文件内容的原因。我看到康斯坦丁的解决方案已经解决了这个问题:)
猜你喜欢
  • 2015-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-06
  • 1970-01-01
  • 2021-10-02
  • 1970-01-01
相关资源
最近更新 更多