Аргумент типа click.File, но закрыть файл раньше времени?Python

Программы на Python
Anonymous
Аргумент типа click.File, но закрыть файл раньше времени?

Сообщение Anonymous »

Тип 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

Вернуться в «Python»