• Питон ставит правила(сарказм) по f.read, что делать, не работает как должно. Есть возможности?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    with open("convert_der/after.txt", "r") as r:
            count = r.read().count('|')
            print(f'Суммарно {count}')
            read = r.read()

    Смотрите что тут происходит:
    - открывается файл на чтение
    - вычитывается всё содержимое файла и в содержимом подсчитывается число "|", при этом считанное содержимое никуда не сохраняется в памяти.
    - повторный read уже ничего не прочитает. Просто пустая строка будет.

    В файле есть виртуальный курсор, когда файл открыт на чтение, курсор стоит в его начале. Можно читать указывая количество символов для чтения, или читать построчно, тогда курсор сдвигается на указанное число символов или на строку, а дальнейшие чтения будут уже с нового места. Если вы вычитали весь файл, а именно это происходит при read() без параметров, то курсор уже в конце, и оттуда можно прочесть только пустоту.
    Ответ написан
    Комментировать