что такое open as f с использованием режима rb?

#python #file

#python #файл

Вопрос:

Не могли бы вы, пожалуйста, помочь мне понять, что это за строка кода?

with open(f'{linear_rl_trader_models}/scaler.pkl', 'rb') as f:

  ` scaler = pickle.load(f)`
  

Я знаю, что такое open, но первая часть open не является каталогом.
почему у нас есть f'{}/…? Я имею в виду, почему {}?
не могли бы вы дать мне источник или объяснить это? Спасибо,

Комментарии:

1. Это синтаксис форматирования строк. Это равно ‘{}/scaler.pkl/’.format(linear_rl_trader_models).

2. Это f-строка . {linear_rl_trader_models} заменяется любой переменной linear_rl_trader_models . Вероятно, это путь.

Ответ №1:

Это форматированный строковый литерал (f-строка). F-строки используются для:

включите значение выражений Python внутри строки, добавив к строке префикс f или F и записав выражения как {expression} .

В этом случае вы можете думать об этом как о конкатенации строк, но в более сжатом формате. Таким образом, ваш пример можно рассматривать как:

 with open(str(linear_rl_trader_models)   '/scaler.pkl', 'rb') ...
  

Это просто строка, содержащая значение linear_rl_trader_models переменной, за которой следует '/scaler.pkl'

Комментарии:

1. Я немного смущен, потому что, когда мы используем open, мы указываем имя файла, а не переменные!

2. @hghg Действительно, и имя файла представлено строкой. Это было бы то же самое, что определить переменную и заранее назначить ей путь, а затем передать эту переменную в open() функцию.