Первый ребенок на python
# -*- coding: utf-8 -*- __author__="vaulter" __date__ ="$05.09.2009 22:03:27$" """ Это мой первый скрипт на python Он переименовывает файлы, имена которых не содержат номера согласно таблице, считанной из указанного cvs файла. То есть, иными словами, есть таблица One, 1 Two, 2 И есть файлы 1. One.avi Two.avi Скрипт пропустит 1. One.avi и переименует Two.avi -> 2. Two.avi все :) зы: Было написано для упорядочивания серий Dora Explorer :) """ import os import os.path import re import csv import difflib class DoraSeries(): content = "" series = {} in_seria = 0 def __init__( self, url ): self.url = url listReader = csv.reader( open( self.url ) ) for row in listReader: self.series[ row[ 0 ].strip().lower() ] = row[ 1 ].strip() def get_seria( self, name ): prepared = name.strip().lower() if prepared in self.series: return self.series[ prepared ] else: return 0 def get_most_close( self, name ): max = 0 matcher = difflib.SequenceMatcher() matcher.set_seq2( name ) for k in self.series: matcher.set_seq1( k ) r = matcher.ratio() if max < r: max = r kmax = k print name, " ? ", k, " = ", r if max > 0.73: #threshold return self.series[ kmax ] return 0 def rename_by_seria( self, filename ): parts = os.path.split( filename ) name = os.path.splitext( os.path.basename( filename ) )[ 0 ] seria = self.get_seria( name ) if not seria: seria = self.get_most_close( name ) if seria > 0: newname = parts[ 0 ] + seria + "." + parts[ 1 ] print filename, " > ", newname os.rename( filename, newname ) dir = "/home/vaulter/video/Dora Explorer" wiki_page = DoraSeries( '/home/vaulter/NetBeansProjects/Dora/list.csv' ); if __name__ == "__main__": names = os.listdir( dir ); os.chdir( dir ) for name in names: fullname = os.path.join( dir, name ) # получаем полное имя if os.path.isfile( fullname ): # если это файл... print name, if re.match( r"(\d+)\..*", name ): print "YES" else: print "not match" wiki_page.rename_by_seria( name )
Новые записи в блогах
- Building myGUI on amd64 (x64) error in SkinTextureControl
- Как использовать PDF читалку от Google Chrome в Chromium
- Делаем псевдонимы хостов для ssh
- Немного апокалиптики
- 10 самых разыскиваемых вещей Drupal-разработчиками
- Как сделать нумерованный HTML список с обратным отчетом через CSS
- Пример обработки XML в BASH
- Conky мой простейший виджет мониторинга сети
- Катаюсь
- Мгновенное создание UML-диаграмм последовательности
Сейчас на сайте
Сейчас на сайте 0 пользователей и 3 гостя.
Архивы
- Февраль 2002 (2)
- Апрель 2002 (1)
- Июль 2002 (2)
- Декабрь 2002 (1)
- Март 2003 (3)
- Июнь 2003 (1)
- Октябрь 2003 (3)
- Ноябрь 2003 (1)
- Декабрь 2003 (1)
- Август 2004 (1)
Популярное содержимое
- Создание сайтов (27,848)
- Крылатые латинские выражения (22,120)
- Судоку - бесплатное решение онлайн (12,920)
- Пишем свой чат на PHP (8,974)
- Судоку - решений решатель (5,312)
- Undelete restore Compact Flash за 5 минут (5,003)
- X over SSH or remote Gnome on local KDE (3,841)
- Оптимизация web сервера (3,837)
- Как сделать сайт (3,427)
- Сжатие javascript (2,866)
Метки
Авторское право
apt
cairo
свобода
xml
Россия
ssl
ubuntu
о жизни
php
google
dle
javascript
proxy
scripts
bitrix
xaraya
openbox
c++
lua
ssh
ajax
оси зла
linux
debian
CMS
monitoring
юмор
KDE
coding
ubuntu 7.10
python
защита информации
bash
compiz
html
латынь
bugs
чужое
drupal
CSS
климат
миграция с windows на linux
головоломки
drupal 6
visual c++
howto
software
капитализм
rrdtool
pppoe
пресса
webmin
X
mysql
Запад
sh
Глобальное потепление
xslt
drupal 5
java
web
оптимизация
климат Земли
debug
Gnome
joomla
mssql
apache