文件的阵列我有一个文件,写在一个数组,如:阅读从Python中
[1, 2, 3, 4, 5, 6, 7]
我怎么能读它,并得到阵列,使Python中的变量?到目前为止发生的事情是,我只是得到了字符串。
def get_data():
myfile = open('random_array.txt', 'r')
data = myfile.read().replace('\n', '')
return data
文件的阵列我有一个文件,写在一个数组,如:阅读从Python中
[1, 2, 3, 4, 5, 6, 7]
我怎么能读它,并得到阵列,使Python中的变量?到目前为止发生的事情是,我只是得到了字符串。
def get_data():
myfile = open('random_array.txt', 'r')
data = myfile.read().replace('\n', '')
return data
如果格式总是这样,一个方法是使用json.loads
:
>>> s = "[1,2,3,4]"
>>> import json
>>> json.loads(s)
[1, 2, 3, 4]
这样做,你可以用逗号之间的任何空间,你可以使用花车和整数的优势文本等等。
所以,你的情况,你可以这样做:
import json
def get_data():
with open("random_array.txt", "r") as f:
return json.load(f)
是的,这似乎是做我想做的,和一个simpe解决方案。谢谢:) – GonacFaria
这应该做的伎俩:
def get_data():
myfile = open('random_array.txt', 'r')
data = myfile.read().strip()
data = data[1:len(data)-1]
splitted = data.split(", ")
return splitted
这消除了开头和结尾“[]”,然后分割的字符串每个", "
,给你一个正好是数字的字符串数组。
但是用这个解决方案你不会把数字当作int来处理,一切都会被当作字符串来处理,对不对? – GonacFaria
@GonacFaria是的,这是真的,但为了解析数据,这应该就够了。然后你可以通过int(data [i])'来转换数组中的单个元素。但是的确,json-parser方法更加优雅。 –
确实它更优雅,更简单。我不想解析字符串,但想找一种方法来解释它。 – GonacFaria
在这种特殊情况下,最好使用json
模块,因为它似乎你的阵列使用相同的格式,但总的来说,你可以做这样的事情:
def get_data(filename):
with open(filename, 'r') as f:
return [int(x) for x in f.read().strip('[]\n').split(',')]
能够保证所有的仅仅是有一个在文件中具有这种确切格式的数组? –
这个问题可能会帮助你从字符串中获取列表:http://stackoverflow.com/questions/1894269/convert-string-representation-of-list-to-list-in-python – dgeorgiev
托比亚斯,是的。它将始终是相同的格式。只有一个数组显示。 – GonacFaria