2016-01-12 130 views
-2

我想從文件讀取數組並將其保存在myArray[]中。如何從文件中讀取數組並將其存儲在數組中

File1.txt是["abc", "def"...]我想能夠解析myArray[0]這是「abc」,myArray[1]這是「def」等。

f = File.open('file.text') 
payload = f.read 
puts payload 

給出輸出作爲["abc", "def"...]它是一個字符串,並且變得難以閱讀作爲數組。

+5

請出示你的企圖 – erip

+0

F = File.open( 'file.text') 有效載荷= f.read 把有效載荷 給爲 「[」 ABC 「 」高清「 ...]」 輸出,是一個字符串,它很難作爲一個數組讀取。 –

+0

這可以用正則表達式來完成 – Dbz

回答

0

您將需要使用Kernel#eval將文件內容(字符串)解析爲Ruby代碼。

eval.txt的內容:

['abc', 'def'] 

Ruby代碼:

contents = File.read("eval.txt") 
foo = Kernel.eval(contents) 
puts "Length of foo is #{foo.length}" 

輸出:

Length of foo is 2 

使用JSON作爲您的序列化格式可能會更理智的選擇,雖然。

+0

我認爲JSON更加安全。這似乎可能是危險的。實際上,exec可能是危險的。 – Dbz

+0

嗨@cody,感謝您的迴應,併爲您提供完美的解決方案!再次感謝。你能不能詳細說一下'使用JSON作爲你的序列化格式可能是更理想的選擇?'我不確定你在這裏的意思。我試圖從文件中讀取的內容不是關鍵值對。 –

+0

@Dbz,這個問題也適用於你..謝謝 –

相關問題