如果我的文本文件包含以下数字:
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]]
答案 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() ]