Тип click.File() полезен для обработки - как стандартного ввода, а также для автоматического безопасного закрытия файла при выходе из команды.
Однако , если моя программа может работать долго, я не хочу оставлять этот файл открытым все это время. Существует ли какой-либо официальный рекомендуемый способ досрочного закрытия файла, если я знаю, что с ним покончено? Я не вижу метода close или его эквивалента нигде в документации API.
Я вижу метод close во внутреннем классе _AtomicFile но мне неясно, считается ли это частью общедоступного интерфейса или безопасно ли вызывать эту функцию в пользовательском коде.
Я попробовал это, и, похоже, это работает так, как ожидалось, но я понятия не имею, считается ли это безопасным или действительным:
import click
@click.command()
@click.option("-f", type=click.File())
def cli(f):
data = f.read()
data.close()
print(data)
if __name__ == "__main__":
cli()
Подробнее здесь: https://stackoverflow.com/questions/773 ... file-early