и посмотреть медиа
Код на салфетке - Python кодинг
и посмотреть медиа
Канал о программировании на Python и других языках. Простые объяснения и коды.
Канал о программировании на Python и других языках. Простые объяснения и коды.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Ресурс для интересующихся программированием. Фокус на Python, но охватывает и другие темы. Простые примеры и разборы.
Знаете ли вы, как потерять файл во время сортировки? Бывает, файл нужно отсортировать и оставить под тем же именем – строчка sort list.txt > list.txt выглядит как решение задачи. Но после нее в файле оказывается ноль строк, а прежнее содержимое взять негде. Причина в порядке действий: перенаправление отрабатывает раньше команды. Шелл открывает файл справа от > на запись, обрезает до нуля, и только потом стартует sort – читать ему уже нечего. printf "banana\napple\ncherry\n" > fruits.txt sort fruits.txt > fruits.txt wc -l < fruits.txt # 0 Никакой ошибки при этом нет: sort штатно отработал на пустом входе и штатно записал пустой результат. Файл существует, права на месте, код возврата 0 – пропали только данные. Обнуляет файл сам шелл, командой это не управляется: printf "INFO start\nDEBUG x=1\nINFO done\n" > app.log false > app.log wc -l < app.log # 0 false не читает и не пишет ничего, он просто завершается с ненулевым кодом – но лог уже пустой. То же самое произойдет с grep -v DEBUG app.log > app.log: попытка выкинуть отладочные строки из лога выкинет лог целиком. Правильный порядок – сначала полный результат, потом замена файла: printf "banana\napple\ncherry\n" > fruits.txt sort fruits.txt > tmp.txt && mv tmp.txt fruits.txt cat fruits.txt # apple # banana # cherry Временный файл разводит чтение и запись во времени, а && гарантирует, что подмена произойдет только при успешном завершении команды. У sort для этого есть и собственный ключ – sort -o fruits.txt fruits.txt. Он, как и sponge из moreutils, сначала читает вход целиком и только потом открывает выходной файл. Файл в правой части перенаправления обрезается до запуска команды, поэтому один и тот же файл не может быть входом и выходом одновременно. Результат сначала пишется рядом – во временный файл или через ключ вроде -o, – и только потом занимает место исходного. Код на салфетке × Кусочки кода
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!