Прочитайте последнюю строку в sys.stdin - PullRequest
0 голосов
/ 17 апреля 2019

Для проблемы кодирования я должен прочитать данные, используя sys.stdin.Тем не менее, я использую метод for, повторяющийся по sys.stdin, и он завершается неудачно, поскольку ввод не включает переводы строки после ввода контрольного примера.

Пример ввода:

10 20
#################---
##-###############--
#---################
##-#################
########---#########
#######-----########
########---#########
##################--
#################---
##################-#
3 10
#-########
----------
#-########

Код, используемый для чтения ввода:

grids = []
for line in stdin:
    if line == "\n":
        break
    m, n = map(int, line.split())
    grid = []
    for row in range(m):
        r = list(stdin.readline().strip())
        print("ROW:",r)
        grid.append(r)
    grids.append(grid)
return grids

Токовый выход:

ROW: ['#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '-', '-', '-']
ROW: ['#', '#', '-', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '-', '-']
ROW: ['#', '-', '-', '-', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#']
ROW: ['#', '#', '-', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#']
ROW: ['#', '#', '#', '#', '#', '#', '#', '#', '-', '-', '-', '#', '#', '#', '#', '#', '#', '#', '#', '#']
ROW: ['#', '#', '#', '#', '#', '#', '#', '-', '-', '-', '-', '-', '#', '#', '#', '#', '#', '#', '#', '#']
ROW: ['#', '#', '#', '#', '#', '#', '#', '#', '-', '-', '-', '#', '#', '#', '#', '#', '#', '#', '#', '#']
ROW: ['#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '-', '-']
ROW: ['#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '-', '-', '-']
ROW: ['#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '-', '#']
ROW: ['#', '-', '#', '#', '#', '#', '#', '#', '#', '#']
ROW: ['-', '-', '-', '-', '-', '-', '-', '-', '-', '-']

Желаемый вывод:

ROW: ['#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '-', '-', '-']
ROW: ['#', '#', '-', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '-', '-']
ROW: ['#', '-', '-', '-', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#']
ROW: ['#', '#', '-', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#']
ROW: ['#', '#', '#', '#', '#', '#', '#', '#', '-', '-', '-', '#', '#', '#', '#', '#', '#', '#', '#', '#']
ROW: ['#', '#', '#', '#', '#', '#', '#', '-', '-', '-', '-', '-', '#', '#', '#', '#', '#', '#', '#', '#']
ROW: ['#', '#', '#', '#', '#', '#', '#', '#', '-', '-', '-', '#', '#', '#', '#', '#', '#', '#', '#', '#']
ROW: ['#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '-', '-']
ROW: ['#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '-', '-', '-']
ROW: ['#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '-', '#']
ROW: ['#', '-', '#', '#', '#', '#', '#', '#', '#', '#']
ROW: ['-', '-', '-', '-', '-', '-', '-', '-', '-', '-']
ROW: ['#', '-', '#', '#', '#', '#', '#', '#', '#', '#']

Как видно, последняя строка не являетсяпечатается и поэтому не читается, так как перевод строки не включается в ввод.Поэтому есть ли способ прочитать последнюю строку?Пожалуйста, сообщите.

Я использую Pycharm Community Edition 2017.

Редактировать:

Эта проблема была решена, когда я запустил ее в оболочке IDLE, я подозреваю, что версия Pycharmused имел некоторые ошибки, приводящие к этой ошибке.В любом случае, спасибо за помощь.

1 Ответ

1 голос
/ 17 апреля 2019

Проверьте, содержит ли ваш ввод "\ n" в конце.

Фрагмент из документации по Python: https://docs.python.org/3/tutorial/inputoutput.html?highlight=readline

f.readline () читает одну строку из файла; символ новой строки (\ n) остается в конце строки и опускается только в последнем строка файла, если файл не заканчивается новой строкой. Это делает возвращаемое значение однозначно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...