Comments 13
Делаем python скрипт проще:
Ну и если не используете with, учитывайте что close функция, ее надо вызывать (хотя при чтении это не критично)
with open(path) as f:
print(random.choice(f.readlines()))
Ну и если не используете with, учитывайте что close функция, ее надо вызывать (хотя при чтении это не критично)
Читаем весь файл в память? А если не поместится?
Когда не поместится, то тогда и будем решать проблему, преждевременная оптимизация зло, кроме этого, содержание файла указано, он небольшой.
Я только начал вникать в тонкости питона. И признаюсь не знал такой конструкции.
И что Вы имели ввиду про close, я же в листинге ее вызывал?
Спасибо за интерес к моей публикации.
Не знаю зачем, но вот выбор одной строки из файла без питона:
randline.sh:
Можно при желании склеить в однострочник. Работает с файлами любого размера до 2^32-1 строк, но рандом не очень качественный из-за %.
randline.sh:
#!/bin/sh
F=${1:?Need file}
L=$(<"$F" wc -l)
RAND=$(od -A n -t u -N 4 /dev/urandom)
tail -n +$(expr $RAND % $L + 1) "$F" |
head -n1
Можно при желании склеить в однострочник. Работает с файлами любого размера до 2^32-1 строк, но рандом не очень качественный из-за %.
Идеи для будущих статей, если они последуют:
- как победить андроидное ограничение, запрещающее изменять файлы на флешке за пределами /Android/data/com.termux (причём это распространяется и на флешку, воткнутую через OTG!)
- как средствами termux (rsync/tar/cp -a) бекапить данные с телефона
- как совершать действие автоматически по приходу домой (через вайфай)
- как совершать действие автоматически по втыканию флешки
- как иконку часто нужного скрипта вывести на лончер
- как запрещать и разрешать телефону засыпать пока долгие команды выполняются
UFO just landed and posted this here
Sign up to leave a comment.
Termux шаг за шагом (Часть 2)