лучше - держать его открытым или открывать в момент записи и обратно закрывать?
задача этого кода какая?
Ждать данные и грузить в файл csv
Здесь скорее теоритическая задача
открывать, когда нужно
А какая разница? Типа, какие последствия, если файл будет долго открыт без нужды?
как оказалось, всё-таки не теоретическая
говнокод гонка у тебя просто висит открытый файл других причин я придумать не могу
Дескрипторов небольшое число даётся открывать процессу и это ресурс ограниченный
м, а почитать об этом где можно?
Не знаю где лучше, но я это узнал из книги Столярова "Системы и сети"
ага, и с питоном, как оказалось это не связано
Ни каких, просто минус 1 свободный файловый дескриптор для процесса
угу, только их количество можно перебиндить на единичку)
Как будто если закрывать гонка пропадёт
Звучит как будто можно держать открытым. Все равно наполовину записанный файл не имеет смысла
ну, да, не пропадает, но шанс её встретить уменьшается
мне кажется, что там просто данные прибавляются
На линуксе ты прекрасно можешь несколько раз открыть файл. Закрытие ничем не поможет. На винде ты наоборот не можешь два раза файл открыть на запись. То есть пока один открыл, никто данные не запишет
Открытие файла на линуксе это просто получение дескриптора из таблицы
хм, теперь зная это, на винде лучше держать открытым, а на линуксе разницы особо не будет
и все чем это может навредить это просто количество свободных дескрипторов файлов в процессе станет на 1 меньше
И если не закрывать, то не надо забывать делать flush().
это вообще не при чем
Это при том, что при падении будет меньше причин для удивления отсутствию данных.
а нас открытие и закрытие файла как то с буферезацией данных связано ?
Так если не все данные ещё получили, какая разница
мм, разве ?
https://docs.python.org/3/library/io.html#io.IOBase.close
Обсуждают сегодня