Попытка прочитать текстовый файл из нескольких матриц и сохранить в виде нескольких массивов - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь взять файл .txt, который содержит несколько матриц, а затем сохранить каждую матрицу в виде массива.Я начинаю только с 2, и оттуда могу идти своим путем.

У меня такое ощущение, что с моей логикой что-то не так, но я не могу понять, как правильно сортировать 2массивы отдельно.

Если у кого-то есть какие-либо предложения или советы, которые будут высоко оценены, спасибо!

Вот мой код для этого на данный момент:

A = []
B = []
f = open("matrix.txt")

while True:
    line = f.readline()
    if not line:   #if end of file is reached, close
        print("end of file has been reached")
        break
    if line == '\n':  #when there is a blank line
        f.readline()
        if not line:  # if end of file is reached, close
            print("end of file has been reached")
            break
        else:
            B.append(list(map(int, line.split())))
        np.array(B)
    else:
        A.append(list(map(int, line.split())))
    np.array(A)
print("Matrix A")
print(A)
print("Matrix B")
print(B)

1 Ответ

0 голосов
/ 19 сентября 2018

Подумайте еще раз над тем, что вы делаете.Каждая строка файла обрабатывается индивидуально;если строка пуста (то есть если она состоит только из символа новой строки), вы добавляете к B.В противном случае вы добавляете к A.Вы можете видеть, что это полностью не зависит от того, ударил ли уже символ новой строки.Лучший способ сделать это - это:

A, B = [], []
f = open("matrix.txt")

line = f.readline()
# first, handle reading in matrix A.
while len(line.strip()) != 0:  # detects any whitespace-filled line
    A.append(list(map(int, line.split())))
    line = f.readline()
array_A = np.array(A)

# Now, after encountering a blank line, handle matrix B the same way
line = f.readline()
while len(line.strip()) != 0:
    B.append(list(map(int, line.split())))
    line = f.readline()
array_B = np.array(B)

# ...and so on
...