将数据文件读取到数组/列表

时间:2012-12-06 03:05:09

标签: python-2.7

目标:读取数据文件(数值),创建数组/列表 问题:每个数字都形成为数组,而我需要将整个值作为一个数组/列表

输入数据文件(1.txt):2个列由制表符间隙

分隔

0.85787 0.8E-03

0.8578 45.8E-03

0.857878 5.8E-03

0.657878 2.3E-03

..... ......

crs = open("1.txt","r")
for line in crs:
 x = line.split()
 k=str(x[0]) # string to avoid spacing problem
 v=str(x[1])
 print k[0]

k [0]仅列出第一个数字,即。,

0

0

0

0

0

但我的要求是在k [0]中存储0.85787 ....在k [3]中存储0.657878 ....

v [0]中的

和0.8E-03 ...... v [3]中的2.3E-03 ....并进一步使用它,重要的是没有空格/间隙。

欢迎提出建议。

1 个答案:

答案 0 :(得分:0)

如果需要为数据的两列创建单独的列表,最简单的方法是在开始循环之前简单地创建列表,然后在循环遍历文件时附加到它们:

k = []
v = []
with open("1.txt", "r") as crs:
    for line in crs:
        x = line.split()
        k.append(x[0]) # use float(x[0]) if you want numbers rather than strings
        v.append(x[1])

更“Pythonic”(但可能更难以理解)解决方案是使用生成器表达式和zip函数同时创建两个列表:

with open("1.txt", "r") as crs:
    k, v = zip(*(line.split() for line in crs))