我想從文件讀取數組並將其保存在myArray[]
中。如何從文件中讀取數組並將其存儲在數組中
File1.txt是["abc", "def"...]
我想能夠解析myArray[0]
這是「abc」,myArray[1]
這是「def」等。
f = File.open('file.text')
payload = f.read
puts payload
給出輸出作爲["abc", "def"...]
它是一個字符串,並且變得難以閱讀作爲數組。
我想從文件讀取數組並將其保存在myArray[]
中。如何從文件中讀取數組並將其存儲在數組中
File1.txt是["abc", "def"...]
我想能夠解析myArray[0]
這是「abc」,myArray[1]
這是「def」等。
f = File.open('file.text')
payload = f.read
puts payload
給出輸出作爲["abc", "def"...]
它是一個字符串,並且變得難以閱讀作爲數組。
您將需要使用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作爲您的序列化格式可能會更理智的選擇,雖然。
我認爲JSON更加安全。這似乎可能是危險的。實際上,exec可能是危險的。 – Dbz
嗨@cody,感謝您的迴應,併爲您提供完美的解決方案!再次感謝。你能不能詳細說一下'使用JSON作爲你的序列化格式可能是更理想的選擇?'我不確定你在這裏的意思。我試圖從文件中讀取的內容不是關鍵值對。 –
@Dbz,這個問題也適用於你..謝謝 –
請出示你的企圖 – erip
F = File.open( 'file.text') 有效載荷= f.read 把有效載荷 給爲 「[」 ABC 「 」高清「 ...]」 輸出,是一個字符串,它很難作爲一個數組讀取。 –
這可以用正則表達式來完成 – Dbz