Комментарии 13
Делаем python скрипт проще:
Ну и если не используете with, учитывайте что close функция, ее надо вызывать (хотя при чтении это не критично)
with open(path) as f:
print(random.choice(f.readlines()))
Ну и если не используете with, учитывайте что close функция, ее надо вызывать (хотя при чтении это не критично)
+2
Читаем весь файл в память? А если не поместится?
0
Когда не поместится, то тогда и будем решать проблему, преждевременная оптимизация зло, кроме этого, содержание файла указано, он небольшой.
0
Я только начал вникать в тонкости питона. И признаюсь не знал такой конструкции.
И что Вы имели ввиду про close, я же в листинге ее вызывал?
Спасибо за интерес к моей публикации.
0
Не знаю зачем, но вот выбор одной строки из файла без питона:
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 строк, но рандом не очень качественный из-за %.
+1
Идеи для будущих статей, если они последуют:
- как победить андроидное ограничение, запрещающее изменять файлы на флешке за пределами /Android/data/com.termux (причём это распространяется и на флешку, воткнутую через OTG!)
- как средствами termux (rsync/tar/cp -a) бекапить данные с телефона
- как совершать действие автоматически по приходу домой (через вайфай)
- как совершать действие автоматически по втыканию флешки
- как иконку часто нужного скрипта вывести на лончер
- как запрещать и разрешать телефону засыпать пока долгие команды выполняются
+1
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Termux шаг за шагом (Часть 2)