Какое имя переменной вы используете для файловых дескрипторов?

StackOverflow https://stackoverflow.com/questions/1419039

Вопрос

Довольно глупый тривиальный вопрос.Каноническим примером является f = open('filename'), но

  • f это не очень описательно.После того, как вы некоторое время не просматривали код, вы можете забыть, означает ли это "файл", или "функция f (x)", или "результаты преобразования Фурье " или что-то еще.EIBTI.
  • В Python, file уже используется функцией.

Чем еще вы пользуетесь?

Это было полезно?

Решение

 data_file
 settings_file
 results_file
 .... etc

Другие советы

Вы можете добавить его в начало, например, по-венгерски "file_fft".

Тем не менее, я бы постарался закрыть файловые дескрипторы как можно скорее, и я рекомендую использовать оператор with, подобный этому, чтобы вам не пришлось беспокоиться о его закрытии, и это упрощает отслеживание.

with open("x.txt") as f:
    data = f.read()
    do something with data

Я рад использовать f (либо для функции, либо для файла;-) если область действия этого идентификатора ограничена довольно маленьким кругом (например, with open('zap') as f: обычно это предвещало бы, скажем).В общем, идентификаторы с большими лексическими областями должны быть длиннее и более явными, идентификаторы с лексически малыми / короткими областями / продолжительностью жизни могут быть короче и менее явными, и это относится к объекту open file примерно в той же степени, что и к любому другому типу объектов!-)

Обычно, если область действия файлового объекта составляет всего несколько строк, f отлично читается - имя переменной для имени файла в открытом вызове, вероятно, достаточно описательно.в противном случае something_file вероятно, это хорошая идея.

обычно я буду использовать "fp" для указателя на файл с коротким сроком службы.

для более долговечного дескриптора я буду более описательным."fpDebugLog", например.

Я предпочитаю использовать один из: f, fp, fd.

Иногда inf / outf для входного и выходного файла.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top