Модераторы: ZeeLax, powerfox
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перевести в транслит пару десятков имен файлов 
:(
    Опции темы
GrayCardinal
Дата 24.7.2009, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 7
Всего: 58



сабж.
ОС - Linux.
Самому писать скрипт дико влом :(


--------------------
PM MAIL WWW   Вверх
pythonwin
Дата 24.7.2009, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 3
Всего: 36



http://www.google.com/search?q=python+translit

Добавлено через 1 минуту и 22 секунды
http://pyobject.ru/projects/pytils/
Цитата

При помощи pytils можно сделать транслитерацию:

>>> print pytils.translit.translify(u"Проверка связи")
'Proverka svyazi'
>>> pytils.translit.detranslify("Proverka svyazi")
u'Проверка связи'

В translify вывод - str, а не unicode. В detranslify вход может быть как unicode, так и str.

И сделать строку для URL (удаляются лишние символы, пробелы заменяются на дефисы):

>>> pytils.translit.slugify(u"тест и еще раз тест")
'test-i-esche-raz-test'

PM WWW GTalk Jabber   Вверх
GrayCardinal
Дата 24.7.2009, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 7
Всего: 58



pythonwin
Я в питоне ни в зуб ногой. Ты не мог бы готовый скрипт вывалить ?


--------------------
PM MAIL WWW   Вверх
powerfox
Дата 24.7.2009, 22:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 10
Всего: 97



Код

#! /usr/bin/env python

import sys
from pytils.translit import translify

for line in sys.stdin.readlines():
  print translify(unicode(line, 'utf-8'))


Код

chmod +x translit.py


Далее пишем скрипт для любимой оболочки ;)

Добавлено через 2 минуты и 22 секунды
GrayCardinal, для установки pytils:

1. Установить пакет python-setuptools.
2.
Код

sudo easy_install pytils



--------------------
user posted image
PM WWW   Вверх
GrayCardinal
Дата 25.7.2009, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 7
Всего: 58



powerfox
Я не правильно выразился... Мне файлы надо переименовать в транслит.  smile 


--------------------
PM MAIL WWW   Вверх
pythonwin
Дата 25.7.2009, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 3
Всего: 36



Цитата(GrayCardinal @  24.7.2009,  21:42 Найти цитируемый пост)
Я в питоне ни в зуб ногой. Ты не мог бы готовый скрипт вывалить ? 

так либо ты не GrayCardinal,  либо я что-то пропустил, т.к. нак портале по питону я часто твои посты читаю.

Цитата(GrayCardinal @  25.7.2009,  15:00 Найти цитируемый пост)
Я не правильно выразился... Мне файлы надо переименовать в транслит.  smile  

тебе нужно перекодировать только названия у файлов или и содержимое файлов?
рекурсивно в подкаталогах или только в текущем каталоге?
PM WWW GTalk Jabber   Вверх
bilbobagginz
Дата 25.7.2009, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 28
Всего: 317



Код

#! /usr/bin/env python
import sys
from pytils.translit import translify
from os import rename,path

for name in sys.stdin.readlines():
    new_name=translify(unicode(name, 'utf-8'))
    if (path.exist(name)):
        rename(name,new_name)


надо конечно тут всякие тесты добавить - что делать если напр. файл - это каталог,
это уже оставим "как упражнение читателю", сам допендривай ;-), с мозгами у тебя нет напряжёнки.


Это сообщение отредактировал(а) bilbobagginz - 25.7.2009, 13:38


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
GrayCardinal
Дата 25.7.2009, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 7
Всего: 58



pythonwin
Кто-то под меня косит :(       )))
Названия файлов (без содержимого), названия каталогов, рекурсивно...

Добавлено через 44 секунды
Цитата

с мозгами у тебя нет напряжёнки.

Спасибо на добром слове  smile 


--------------------
PM MAIL WWW   Вверх
bilbobagginz
Дата 25.7.2009, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 28
Всего: 317



посмотри мануал os.path,  там есть несколько тестов.
найди тест на "каталог ли я", а далее,
  • попытка нырнуть
  • генерим список файлов
  • скармливаем его новому одноимённому процессу
  • по истечении возвращаемся наверьх
было бы неплохо всё это сделать в потоках, параллельно... но это на сл. стадии ;)





--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
powerfox
Дата 25.7.2009, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 10
Всего: 97



Цитата(bilbobagginz @  25.7.2009,  14:45 Найти цитируемый пост)
посмотри мануал os.path,  там есть несколько тестов.


bilbobagginz, да можно и без питона прямо на бэше, имея программу, которая делает транслитерацию имён.


--------------------
user posted image
PM WWW   Вверх
pythonwin
Дата 25.7.2009, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 3
Всего: 36



Цитата(GrayCardinal @  25.7.2009,  16:39 Найти цитируемый пост)
Кто-то под меня косит :(       )))

а это разве не ты - GrayCardinal ?
PM WWW GTalk Jabber   Вверх
GrayCardinal
Дата 25.7.2009, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 7
Всего: 58



pythonwin
Ах, это. Это я, ага. Только заметь, вопросы - то ЛАМЕРСКИЕ smile


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
pythonwin

В этом форуме предпочтительны вопросы на следующие темы:

  • Конкретные вопросы о конкретном ПО. В таких вопросах желательно привести точные данные о программе: версия программы, версия ОС, версия ядра, и проблему в форме: сделал Х, хотел получить Y, а получил Z.
  • Неконкретные вопросы о выборе ПО
  • Обзоры - как дополнение в ветку Обзоры


  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программное обеспечение под *NIX системы | Следующая тема »


 




[ Время генерации скрипта: 0.1136 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.