从一个文件读取到一个数组,并保存回文件作为阵列

问题描述:

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 

我想在每个名称后面加上引号和逗号,所以我有一个数组格式(除括号外)。在当前状态下,它将其保存回纯字符串。从一个文件读取到一个数组,并保存回文件作为阵列

这听起来像你想将采取类似的文件:

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')) 
+0

读取另一种选择是JSON。我使用YAML。 – user1182000 2012-04-18 02:23:29

如果正确地理解你:

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