从Python中的文件中读取数组

时间:2017-02-17 14:14:55

标签: python arrays

我有一个写有数组的文件,例如:

[1, 2, 3, 4, 5, 6, 7]

如何读取它并使用python将数组放入变量中?到目前为止,发生的事情是我只是得到了字符串。

def get_data():
     myfile = open('random_array.txt', 'r')
     data = myfile.read().replace('\n', '')
     return data

3 个答案:

答案 0 :(得分:2)

如果格式总是那样,一种方法是使用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)

答案 1 :(得分:1)

在这种特殊情况下,最好使用json模块,因为您的数组似乎使用相同的格式,但通常您可以执行以下操作:

def get_data(filename):
     with open(filename, 'r') as f:
        return [int(x) for x in f.read().strip('[]\n').split(',')]

答案 2 :(得分:0)

这应该可以解决问题:

def get_data():
    myfile = open('random_array.txt', 'r')
    data = myfile.read().strip()
    data = data[1:len(data)-1]
    splitted = data.split(", ")
    return splitted

这将删除开始和结尾" []"然后在每个", "上拆分字符串,为您留下一个完全符合数字的字符串数组。