Pull to refresh

Comments 13

Делаем python скрипт проще:
with open(path) as f:
    print(random.choice(f.readlines()))

Ну и если не используете with, учитывайте что close функция, ее надо вызывать (хотя при чтении это не критично)

Читаем весь файл в память? А если не поместится?

Когда не поместится, то тогда и будем решать проблему, преждевременная оптимизация зло, кроме этого, содержание файла указано, он небольшой.

Содержимое файла, в данном случае, только для примера, и в статье я на это указал, оставив окончательный выбор на волю читателей.
А из программирования МК у меня привычка постоянно экономить оперативу.
Ну и выше я Вам ответил))

Я только начал вникать в тонкости питона. И признаюсь не знал такой конструкции.
И что Вы имели ввиду про close, я же в листинге ее вызывал?
Спасибо за интерес к моей публикации.

f.close и f.close() разные вещи
Понял, исправлю. Благодарю.
Не знаю зачем, но вот выбор одной строки из файла без питона:
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 строк, но рандом не очень качественный из-за %.
Вполне уместное дополнение, я сначала тоже думал написать весь только на bash-скрипте, но перебороло желание сделать Шаг 7 логическим развитием всей статьи.
Идеи для будущих статей, если они последуют:
  1. как победить андроидное ограничение, запрещающее изменять файлы на флешке за пределами /Android/data/com.termux (причём это распространяется и на флешку, воткнутую через OTG!)
  2. как средствами termux (rsync/tar/cp -a) бекапить данные с телефона
  3. как совершать действие автоматически по приходу домой (через вайфай)
  4. как совершать действие автоматически по втыканию флешки
  5. как иконку часто нужного скрипта вывести на лончер
  6. как запрещать и разрешать телефону засыпать пока долгие команды выполняются
Судя по опросу — продолжению быть.
Обязательно постараюсь написать на все предложенные темы.
UFO just landed and posted this here
Это просто набор юниксовых утилит+оболочка. Рута не требует.
Sign up to leave a comment.

Articles