Первый ребенок на 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 )