如何在python中跳过文件的第一行

时间:2016-05-24 00:31:25

标签: python readline

我需要编写一个代码来读取.txt文件,这是一个如下所示的矩阵,并将其转换为一个新的整数列表矩阵。但是,我想跳过此.txt文件的第一行而不手动删除该文件。我不知道如何去做。 我写了一些代码。它能够显示矩阵,但我无法摆脱第一行:

def display_matrix(a_matrix):
    for row in a_matrix:
        print(row)
    return a_matrix

def numerical_form_of(a_list):
    return [int(a_list[i]) for i in range(len(a_list))]

def get_scoring_matrix():
    scoring_file = open("Scoring Matrix")
    row_num = 0
    while row_num <= NUMBER_OF_FRAGMENTS:
        content_of_line = scoring_file.readline()
        content_list = content_of_line.split('   ')
        numerical_form = numerical_form_of(content_list[1:])
        scoring_matrix = []
        scoring_matrix.append(numerical_form)
        row_num += 1
        #print(scoring_matrix)
        display_matrix(scoring_matrix)
    # (Complement): row_num = NUMBER_OF_FRAGMENTS
    return scoring_matrix

get_scoring_matrix()
Scoring Matrix is a .txt file: 
    1   2   3   4   5   6   7
1   0   1   1   1   1   1   1
2   0   0   1   1   1   1   1
3   0   0   0   1   1   1   1
4   0   0   0   0   1   1   1
5   0   0   0   0   0   1   1
6   0   0   0   0   0   0   1
7   0   0   0   0   0   0   0
The result of my code: 
[1, 2, 3, 4, 5, 6, 7]
[0, 1, 1, 1, 1, 1, 1]
[0, 0, 1, 1, 1, 1, 1]
[0, 0, 0, 1, 1, 1, 1]
[0, 0, 0, 0, 1, 1, 1]
[0, 0, 0, 0, 0, 1, 1]
[0, 0, 0, 0, 0, 0, 1]
[0, 0, 0, 0, 0, 0, 0]

2 个答案:

答案 0 :(得分:3)

在while循环之前放一个scoring_file.readline()。

答案 1 :(得分:2)

我建议使用自动化工具:

import pandas
df = pandas.read_table("Scoring Matrix", delim_whitespace = True)

如果您坚持自己动手,请更改while循环;

while row_num <= NUMBER_OF_FRAGMENTS:
        content_of_line = scoring_file.readline()
        if row_num == 0:
            content_of_line = scoring_file.readline()