Python Glossary English

все Python 3устарело в 3.10fileinputфункция

fileinput.hook_encoded()

хуки открытия

Deprecated: создаёт хук открытия, читающий файлы в заданной кодировке. С 3.10 вместо него передают encoding в input().

Синтаксис

fileinput.hook_encoded(encoding, errors=None)

Устарела в 3.10, когда у input() и FileInput появились параметры encoding и errors; на старых версиях это был единственный способ задать кодировку. Предупреждение DeprecationWarning при вызове не выдаётся, поэтому устаревший код живёт незаметно. Хук и параметр encoding одновременно не нужны: хук всё равно получит encoding от input().

Примеры

import fileinput
open('ru.txt', 'w', encoding='utf-8').write('привет\n')
# устаревший способ
with fileinput.input(['ru.txt'], openhook=fileinput.hook_encoded('utf-8')) as f:
    print(list(f))  # → ['привет\n']
# современный способ
with fileinput.input(['ru.txt'], encoding='utf-8') as f:
    print(list(f))  # → ['привет\n']

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности