Аргумент аргумента аргумента close

argumentparser может принимать аргумент типа файла и оставлять файл открытым напрямую, например:

parser.add_argument('infile', nargs='?', type=argparse.FileType('r')) args = parser.parse_args().__dict__ input = args['infile'].readlines() 

мне нужно закрыть args['infile'] в моей программе? Может ли аргумент его закрыть для меня? Я не нашел упоминания об этом в документах.

НЕТ, он не закрывает объект типа filetype. См. Это

Проблема здесь в том, что FileType может возвращать stdin или stdout , поэтому он не может просто закрыть объект файла.

Большое количество незакрытых дескрипторов файлов может вызвать проблемы для некоторых ОС, но это все. С другой стороны, тот факт, что argparse принимает для своего аргумента типа любой вызываемый, который может проверять и преобразовывать ввод строки, прост, чист и работает.

Также посмотрите на это

Некоторый рыть в источнике показывает, что он не закрывает его для вас. Это имеет смысл, так как он также должен открывать файлы для записи, и вы, вероятно, не захотите его закрыть.