我想从文件读取数组并将其保存在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