pomkalk 17.07.2010 21:37
Python — Может кому пригодится!
Может этот скрипт(программка) кому ни будь пригодиться, не судите строго за пост, пишу первый раз...и за python знаком с ним третий день...Это сделано для автоматизации некоторых действий в консоли!
+ (для новичков) не испортят случайно bashrc
+ Быстрое копирование файлов
Если велосипед извините
Предистория(Кому интересно)
Мне очень нравятся консольные приложения, и mplayer не исключение, но есть одна проблема...когда нужно включить только что скачанное кино, его имя может содержать не только название но и даты, разрешения, и другую информацию, замучаешься набирать....
Сначала я хотел сделать простой скрип, который бы выводил список всех файлов в директории под номерами(как select в bash), и оставалось бы просто ввести цифру файла и выполнялась команда
где FileName имя выделенного файла...
Но тут я подумал, что кроме mplayer есть еще много программ с которыми можно так поступить!
в том числе и копирование файлов!
тогда я взялся сделать скрипт для этого, но тут я его перенес на python.
Сначала я хотел сделать простой скрип, который бы выводил список всех файлов в директории под номерами(как select в bash), и оставалось бы просто ввести цифру файла и выполнялась команда
1 |
|
Но тут я подумал, что кроме mplayer есть еще много программ с которыми можно так поступить!
в том числе и копирование файлов!
тогда я взялся сделать скрипт для этого, но тут я его перенес на python.
Вот что получилось
Теперь мы можем сохранить "Макросы", в домашней директории активного пользователя(/home/user/.fselect.macros), и дальше по вызову команды fselect на предоставляется возможность выбора нужного макроса, и далее список файлов в текущем каталоге, где так же цифрой мы выбираем нужный файл...далее следует выполнение макроса
Что может содержать макрос:
Просто любая баш команда
- заменится на один файл
- возможность выбрать несколько файлов
указать значение(например outputFile, например при записи через ffmpeg)
скрипт требует питоновский модуль argparse (python 2.7 уже поставляется с ним)
для этого нужно установить программу, если она не установлена
1 |
|
далее
1 |
|
ну и конечно сохранить код программы в файл fselect(или другим удобным для вас именем) и поместить его в /usr/bin/
1 |
#!/usr/bin/env python
|
Справка!
usage: fselect <-h> <-a "Command"> <-r> <-l> <-f %FORMAT%> <-b> <-v> <-t> <-s> <-R>
Макрос должен включать который будет заменен на имя файла, - выбор нескольких файлов, outpput файл
Пример fselect -a "cat "
fselect --add="mplayer "
Опции:
-h, --help Показать помошь
-f %FORMAT%, --format %FORMAT% Установть формат маски файлов like "ls *.%FORMA%"
-o Text, --output Text
-b, --background Запустить в скрытом режиме like "prog file &"
-v, --version Показать версию программы
Действия:
-a "Command", --add "Command" Добавить макрос где "Command" - макрос
-r, --remove Удалить макрос из предложенного списка
-l, --list Показать список макросов
Сортировка:
-t, --sort-time Сортировать по времени
-s, --sort-size Сортировать по размеру
-R, --sort-reverse В обратном порядке
Пример использования:
По-моему, кнопку Tab придумали как раз для таких целей, а этот скрипт лишь увеличит путь до воспроизведения файла еще на несколько шагов.
Разве нет?
Разве нет?
Может была цель написать программу, а не написать нужную программу? Ну там потренироваться...
Разве нет....Там написано, кому то, пригодится....так как макрос можно любой написать, хоть на копирование файлов или еще что то где используется имя файла...
Очень плохо с русскама языканама? Включи проверку орфографии в браузере что-ли.
Причем тут макросы? Надо сделать что-то сложное - пишем скрипт, что-то простое, проигрывание это или еще чего простое - пользуемся клавишей Tab и никакого геммороя пошагового.
Причем тут макросы? Надо сделать что-то сложное - пишем скрипт, что-то простое, проигрывание это или еще чего простое - пользуемся клавишей Tab и никакого геммороя пошагового.
ну тут много чего можно придумать, главное что все на самом деле проще чем автор думает :)
1. это именно для консоли
2. Если уж на то пошло то и не нужна....просто мышкой файл открыл с помошью нужной программы и все...
2. Если уж на то пошло то и не нужна....просто мышкой файл открыл с помошью нужной программы и все...
чувак, ты не понимаешь что именно в консоли можно ввести кусок названия файла, нажать кнопку Tab и он сам подставит (или предложит на выбор что подставлять) оставшуюся часть?
Ты сам то понимаешь, я тебе не замену Таба предлогаю, он был и всегда будет, это просто программа....там руским написано, "Может кому пригодится"
У меня есть файли типа 0Ffsdw432.f4.mp3 043He4242.mp3
в которых совпадает первые 5-6 символов пару других, а помот еще совпадает.....как будет быстрее написать fselect и тыкать таб подставляя сначала одно, потом другое....расматрива где там большая буква стоит, а где маленькая...
Прога с одним файл добавляет, три строчки дописать будет много добавлять, и этот точно будет быстрее раскидывать скачаные файлы по папкам...
У меня есть файли типа 0Ffsdw432.f4.mp3 043He4242.mp3
в которых совпадает первые 5-6 символов пару других, а помот еще совпадает.....как будет быстрее написать fselect и тыкать таб подставляя сначала одно, потом другое....расматрива где там большая буква стоит, а где маленькая...
Прога с одним файл добавляет, три строчки дописать будет много добавлять, и этот точно будет быстрее раскидывать скачаные файлы по папкам...
вообще не врубаю, за что топик минусуют, ибо есть такая же фигня: даже с табом...
а переименовывать их влом.
а переименовывать их влом.
Как же ты невнятно говоришь, я нифига не могу понять, что ты имеешь в виду. Перечитывай свой коммент перед отправкой.
Короче, Суть в чем, это я просто про mplayer так все рассказал....bash команда бывает в две строчки, и что бы это не писать постоянно...и не создавать alias в bashrc прото создаешь "Макрос" в который подставится имя файла
+1 за факт написания.
-1 за орфографию.
Такие ошибки, помню, делали в девятом "бэ". Где был один дебил со справкой, а остальные - дебилы без справок.
-1 за орфографию.
Такие ошибки, помню, делали в девятом "бэ". Где был один дебил со справкой, а остальные - дебилы без справок.
На будущее - ставь кат. И пост длинновато выглядит, а уж в РСС, куда падают посты без спойлеров, он занимает ужас как много. Так что ставь кат, если будешь в следующий постах приводить код, даже если ставишь спойлер.
В debian нет необходимости использовать easy_install для получения argparse, достаточно установить пакет python-argparse. В Python в stdlib есть модуль для парсинга параметров getopt.
P.S.
не сужу строго
P.S.
не сужу строго
getopt и optparse считаеются устаревшими
в python 2.7 не будет optparse а будет argparse
в python 2.7 не будет optparse а будет argparse
Я вот в толк никак не возьму. Народ чего вы так набросились? Человек ясно сказал "может кому и пригодится", вам не нужно бог с вами не пользуйтесь, минусовать то его зачем? На энтузиазме начинался Linux!!!
Линукс начинался как что-то полезное, а тут совсем бесполезная фигня.
Бесполезная мне и тебе, а кому-то может и пригодиться, не стоит все мерять одной мерой, Linux тем и хорош что есть выбор!
Тут человек учится и делиться.
Вот ты можешь показать примеры своих скриптов? Программ?
Не согласен с автором? Покажи что можешь лучше.
В общем =) Попробуй как Элвис.
Вот ты можешь показать примеры своих скриптов? Программ?
Не согласен с автором? Покажи что можешь лучше.
В общем =) Попробуй как Элвис.
http://code.google.com/p/0byte/source/browse/branches/silent?spec=svn258&r=258 мой бывший бренч в 0byte перед его удалением.
если будет чем поделиться - я поделюсь если посчитаю что это поможет людям и будет написано правильно.
если будет чем поделиться - я поделюсь если посчитаю что это поможет людям и будет написано правильно.
Другой момент. Я не програмист.
Код не читаю.
Напиши нормальным языком.
Накодит ... смотрть тут... работает так.
Иначе не понятно
Код не читаю.
Напиши нормальным языком.
Накодит ... смотрть тут... работает так.
Иначе не понятно
в общем, одним прекрасным днем я решил сделать мир еще лучше и поучаствовать в каком-то оупенсорс-проекте, смотрю - велинукс-то оупенсорс, посмотрел код - страшненький, есть куда стремиться и написал nvbn, даже доступ получил.
кодил наверное с неделю, очень увлекся. начал делать кеширование, начал переводить все на mvc и в итоге получил от автора ответ что mvc тут вообще не нужен и лучше оставить этот код (код хуже вордпресса я вижу редко, но это - как раз тот случай), он работает и всем похуй.
в результате на продакшне оказалось только мое псевдокеширование css и js, а свой бренч я удалил.
кодил наверное с неделю, очень увлекся. начал делать кеширование, начал переводить все на mvc и в итоге получил от автора ответ что mvc тут вообще не нужен и лучше оставить этот код (код хуже вордпресса я вижу редко, но это - как раз тот случай), он работает и всем похуй.
в результате на продакшне оказалось только мое псевдокеширование css и js, а свой бренч я удалил.
Я не могу тебе помочь.
У нас договорённость. Я не лезу в разработку, он не лезет в мои дела.
У нас договорённость. Я не лезу в разработку, он не лезет в мои дела.
мне уже не надо помогать, я потратил неделю своего недешевого времени на это и обломался :)
Это проблема коммуникаций.
Разбирайтесь сами.
А мне.. Да! ОЧЕНЬ!!!!! грустно, что возникла такая ситуация
Разбирайтесь сами.
А мне.. Да! ОЧЕНЬ!!!!! грустно, что возникла такая ситуация
Вы знаете, может кому и пригодится, но я считаю, статьям, написанным с таким количеством ошибок и таким текстом, не место на ресурсе. Я многое готов простить, но только не "руским языком".
P.S. Надеюсь, не обидел автора.
P.S. Надеюсь, не обидел автора.
Вчера не мог исправить.
Сегодня те ошибки что в глаза бросились исправил.
Не нужно за русс яз ругаться.
Сегодня те ошибки что в глаза бросились исправил.
Не нужно за русс яз ругаться.
А я вот считаю, что место.
То что не дружит с языком - это, конечно, не гуд. Зато вон со скриптами дружит.
Поэтому опять предлагаю себя в качестве редактора/корректора.
Готова править мелочи вроде ката, а так же разгребать особо тяжёлые случаи.
То что не дружит с языком - это, конечно, не гуд. Зато вон со скриптами дружит.
Поэтому опять предлагаю себя в качестве редактора/корректора.
Готова править мелочи вроде ката, а так же разгребать особо тяжёлые случаи.
Ошибок больше не будет!...я когда по русски быстро печатаю, промахиваюсь много((
Блин. А мопед не мой, бля буду.
Ещё немного и это «может кому пригодится» станет локальным форсед мемом.
Ещё немного и это «может кому пригодится» станет локальным форсед мемом.
Пиши что-нибудь действительно интересное, типа конвертера изображений, интегрируемого в контекстное меню Nautilus, жду. В остальном респект.
Автор, она само напрашивается, чтобы исключить шаг "2. выбераем уже созданный мкрос". Имхо оно по заданному расширению должно определять какой прогой запускать, а ещё лучше организовывать группы вроде:
"fselect -g video" - покажет все возможные видео файлы. Ты лучше организуй организуй к примеру hg реп на гуглокоде. Может закомитим чо нить, ага ;-)
"fselect -g video" - покажет все возможные видео файлы. Ты лучше организуй организуй к примеру hg реп на гуглокоде. Может закомитим чо нить, ага ;-)
Кстати, арчеводы, потому же принципу стал работать и yaourt. Пример:
$ yaourt urbanterror
1 aur/quake3-urbanterror 4.1-2 (21)
Urban Terror is a team-based tactical shooter based on the Quake 3 Engine (Quake3 Mod Version)
2 aur/urbanterror 4.1-7 (364)
Urban Terror is a team-based tactical shooter based on the Quake 3 Engine (Stand-Alone Version)
3 aur/urbanterror-client 4.1-2 (20)
Urban Terror is a team-based tactical shooter based on the Quake 3 Engine (client only)
4 aur/urbanterror-client-custom-hg 10-1 (0)
Urban Terror (client only, custom build with improved scripting)
5 aur/urbanterror-data 4.1-1 (20)
Urban Terror is a team-based tactical shooter based on the Quake 3 Engine (data only)
6 aur/urbanterror-server 4.1-3 (3)
Urban Terror is a team-based tactical shooter based on the Quake 3 Engine (server only)
7 aur/urbanterror-server-custom-hg 10-1 (0)
Urban Terror (server only, custom build with improved scripting)
==> Enter n° (separated by blanks, or a range) of packages to be installed
==> ----------------------------------------------------------------------
==>
да ну нафиг :>