2016-05-24 2 views
0

Мне нужно написать код для чтения .txt-файла, который представляет собой матрицу, представленную ниже, и превратить ее в новую целочисленную матрицу. Тем не менее, я хочу пропустить первую строку этого .txt-файла без ручного удаления файла. Я не знаю, как это сделать. Я написал код. Он способен отображать матрицу, но я не могу избавиться от первой линии:как пропустить первую строку файла в python

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

Я предлагаю использовать автоматизированный инструмент:

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

Если вы настаиваете делать это самостоятельно, изменить время цикла;

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

Вау, большое вам спасибо! изменить цикл while, но почему последняя строка показывает пустой список: [0, 1, 1, 1, 1, 1, 1] [0, 0, 1, 1, 1, 1, 1] [0 , 0, 0, 1, 1, 1, 1] [0, 0, 0, 1, 1, 1] [0, 0, 0, 0, 1, 1] [0, 0 , 0, 0, 0, 0, 1] [0, 0, 0, 0, 0, 0] [] –

+0

@ ZichenMa вероятно, потому что в конце вашего файла есть дополнительный возврат каретки, возможно, с некоторые пробелы на последней строке. – gt6989b

+0

Большое вам спасибо! –

3

просто положить scoring_file.readline() перед время петля.