Python Glossary English

все Python 3устарело в 3.14argparseпонятие

argparse.FileType

типы аргументов

Устаревшая фабрика типа: превращала аргумент в открытый файл. С 3.14 объявлена устаревшей — принимайте путь и открывайте файл после разбора.

Синтаксис

parser.add_argument('out', type=argparse.FileType('w', encoding='utf-8'))

Файл открывается прямо во время разбора: если следующий аргумент окажется ошибочным, parse_args() выйдет, а открытый файл не закроется, причём режим 'w' уже успеет обнулить его. Вместо этого задайте type=pathlib.Path и откройте файл в with после разбора. В 3.14 создание FileType выдаёт PendingDeprecationWarning; удаление пока не назначено.

Примеры

import argparse
import pathlib
parser = argparse.ArgumentParser(prog='app')
parser.add_argument('out', type=pathlib.Path)  # вместо FileType
args = parser.parse_args(['out.txt'])
with args.out.open('w', encoding='utf-8') as f:
    f.write('ok')
print(args.out.read_text(encoding='utf-8'))  # → ok

См. также

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