从文件中读取列表并将值分配给特定列

时间:2014-08-20 12:32:38

标签: python

下面是我正在阅读的文件示例。我希望能够将每列中的每个值分配给自己的列。例如,列[1] =“number1”并包含所有第一列值,依此类推。

with open("datafile") as datafile:
next(datafile)
for line in datafile:
    datafile_line = line.split(",")
    print(datafile_line)

number1  number2       number3       number4       number5      number6
 8068   0.45230480   0.88468528    1.843e-007    -6.589e-008     4.01
22109   1.24573974  -0.05680449    8.386e-008     -6.55e-008     4.01
34088   1.85052401   0.35901941   -2.962e-008    -4.654e-009     4.01
35037   1.89722047  -0.46727120   -6.245e-008     3.719e-008     4.01
71865   3.84827581  -0.65962098   -1.814e-007    -1.487e-007     4.01
78527   4.19703294   1.02215647   -2.975e-006     1.624e-006     4.01

1 个答案:

答案 0 :(得分:0)

所以你想要做的就是将文件的“行”转换为表示。

f = open('/tmp/data.txt', 'r')
cols = []
for line in f:
    line = line.replace('\t', ' ')
    col = line.split(sep=' ')
    col = [ x for x in col if x != '' and x != ' ']
    col = list(zip(range(0,len(col)), col))
    for tup in col:
        index, value = tup
        if len(cols) <= index:
            cols.append([])
        cols[index].append(value.strip())

print(cols)

此代码将读入文件内容,假设它被称为/tmp/data.txt并在空白上拆分每一行。对于输入中的每个非空白字,它将在cols变量中创建一个列表,并在遍历文件时构建每个值。