все 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Сообщить о неточности