从文本文件读取并存储在数组中

时间:2019-03-20 20:54:23

标签: python arrays sorting

如果我的文本文件包含以下数字:

5.078780 5.078993
7.633073 7.633180
2.919274 2.919369
3.410284 3.410314

如何读取它并将其存储在数组中,使其变为:

[[5.078780,5.078993],[7.633073,7.633180],[2.919274,2.919369],[3.410284,3.410314]]

8 个答案:

答案 0 :(得分:1)

with open('test.txt', 'r') as file:
    output = [ line.strip().split(' ') for line in file.readlines()]

# Cast strings to floats
output = [[float(j) for j in i] for i in output]    
print(output)

应提供所需的输出:

[[5.07878, 5.078993], [7.633073, 7.63318], [2.919274, 2.919369], [3.410284, 3.410314]]

答案 1 :(得分:0)

这应该有效,

with open('filepath') as f:
    array = [line.split() for line in f.readlines()]

答案 2 :(得分:0)

方法: 有结果列表= [] 用换行符\n分隔文本。 现在处于循环中    用空格char 分隔每行并分配给一个元组    将元组附加到结果列表 我不会在这里编写代码让您解决问题。

答案 3 :(得分:0)

这应该做

with open ("data.txt", "r") as myfile:
    data=myfile.readlines()

for i in range(len(data)):
    data[i]=data[i].split()

答案 4 :(得分:0)

Python为此提供了完美的模块,它称为csv

import csv

def csv_to_array(file_name, **kwargs):
    with open(file_name) as csvfile:
        reader = csv.reader(csvfile, **kwargs)
        return [list(map(float, row)) for row in reader]


print(csv_to_array('test.csv'))

如果以后有一个带有不同字段分隔符的文件,说“;”,则只需将调用更改为:

print(csv_to_array('test.csv', delimiter=';'))

请注意,如果您不关心导入numpy,那么this solution会更好。

答案 5 :(得分:0)

您首先要以字符串数组(每个字符串是文件的一行)的形式检索文件内容。

,其中open(“ myfile.txt”,'r')为f:     file_content = f.readlines()

有关更多信息,请参见打开文档:https://docs.python.org/3/library/functions.html#open

然后您要创建一个列表

content_list = []

然后,当每个字符串应该用空格分隔时(使用split()函数,该字符串将用两个值组成一个列表并将其添加到content_list中,然后用每个字符串填充它,使用for循环!

for line in file_content:
    values = line.split(' ') # split the line at the space
    content_list.append(values)

顺便说一句,可以通过 List Comprehension 来简化此操作:

content_list = [s.split(' ') for s in file_content]

答案 6 :(得分:0)

要转换为这种确切格式:

<%= show(lc.contacts.name) %>

输出:

with open('filepath', 'r') as f:
    raw = f.read()

arr = [[float(j) for j in i.split(' ')] for i in raw.splitlines()]
print arr

答案 7 :(得分:-1)

with open('blah.txt', 'r') as file:
    a=[[l.split(' ')[0], l.split(' ')[1] for l in file.readlines() ]