从文件读入数组并以Array格式保存回文件

时间:2012-04-17 21:08:02

标签: ruby arrays file

results = open('names.txt').map { |line| line.split(' ')[0]}
p results
n = "Names_In_Array.txt"
outfile = File.new(n, 'w')
outfile.puts(results)
outfile.close

我尝试在每个名称后添加引号和逗号,因此我有一个数组格式(括号除外)。在它的当前状态下,它将其保存回一个普通字符串。

2 个答案:

答案 0 :(得分:1)

听起来你想要一个像:

这样的文件

ben john joe adam mike bob

并将其序列化为对象结构以供稍后阅读。

如果是这种情况,我建议您查看YAML。它内置于Ruby中,使读取和写入数据结构变得容易。例如:

require 'yaml'
names = File.read('names.txt').split(' ')
File.open('Names_In_Array.txt') {|f| f << YAML::dump(names)}

您生成的文件可以通过

在后续程序中读取
names = YAML::load(File.open('Names_In_Array.txt'))

答案 1 :(得分:0)

如果你理解正确的话:

outfile.puts(results.map{ |m| "\'#{m}\'" }.join(', '))