begin process at 2012 05 24 05:08:57
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Multimedia

 > RENOMMER SOUS-TITRES

RENOMMER SOUS-TITRES


 Information sur la source

Note :
Aucune note
Catégorie :Multimedia Classé sous :sous-titre, renommer, film, subtitle, série Niveau :Débutant Date de création :01/04/2011 Vu / téléchargé :2 306 / 35

Auteur : memejoueur

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Renomme les fichiers de sous-titres correspondants aux fichiers vidéos du répertoire courant, pour leur donner exactement le même nom. Nécessaire pour que les lecteurs vidéo utilisent ces sous-titres automatiquement.

Les fichiers de séries TV sont aussi pris en compte, par ex s'il voit
'dexter 3x04 fr.srt' et 'Dexter.S03E04.Xvid.LOL.avi' il va renommer le
sous-titre en 'Dexter.S03E04.Xvid.LOL.srt'.

Utilisation :

1. Placer ce fichier python dans le répertoire contenant
   vos films et sous-titres, et l'exécuter.
2. Choisir le mode: automatique renomme tous les fichiers
   srt qui correspondent à un film, manuel demande
   confirmation pour renommer chaque sous-titre.

Source

  • #!/usr/bin/env python
  • # -*- coding:cp1252 -*-
  • #Fichier: ren-my-sub.py
  • #Version: 1.0 (écrit avec python3.2)
  • #Date: 2011/04/01 20:00
  • import os, re
  • print('* Renomme les sous-titres *')
  • print('* correspondants aux films *')
  • print('* dans le répertoire courant *\n')
  • #recuperation du chemin
  • chemin=os.getcwd()
  • print(chemin)
  • auto=input('-> Mode: auto(a) ou manuel(m) ? ')
  • print('---------------------------------')
  • #recuperation des noms de fichiers
  • fichiers=os.listdir(chemin)
  • #mots inutiles a rejeter
  • naze=re.compile('the|le|les|un|une|hd(tv)?|xvid|divx|dvd(rip)?')
  • # reg expr. des extensions
  • subext=re.compile('srt$')
  • filmext=re.compile('(avi|mkv|mp4|mpg)$')
  • #separation de fichiers dans films et subs
  • films=[fich for fich in fichiers if filmext.search(fich)]
  • subs =[fich for fich in fichiers if subext.search(fich)]
  • #separation des mots dans un fichier
  • def motsde(fichier):
  • lesmots=re.split('\W+|_+',fichier)
  • #enleve les mots de 1 lettre et l'extension
  • mots=[i for i in lesmots if len(i)>1 and not subext.search(i) and not filmext.search(i)]
  • #retourne une liste de listes
  • return mots
  • #recupere n° de saison et episode si serie tv
  • #prend une liste de mots en entree
  • def estserie(mots):
  • regex=re.compile('^(?P<sai>\d)(?P<epi>\d\d)$')
  • regex2=re.compile('(?P<sai>\d{1,2})\D(?P<epi>\d\d)')
  • for mot in mots:
  • if regex.search(mot):
  • episode=regex.search(mot).groups()
  • return [int(i) for i in episode]
  • elif regex2.search(mot):
  • episode=regex2.search(mot).groups()
  • return [int(i) for i in episode]
  • return None
  • #prend en entree: liste de mots subs + liste de mots film
  • def corresp(sub, film):
  • ok=0
  • #parcours les 3 mots de chacun, si ca corresp: ok
  • for i in range(min(len(sub),3)):
  • for j in range(min(len(film),3)):
  • if sub[i].lower()==film[j].lower() and not naze.search(sub[i].lower()): ok+=1
  • #si mauvais episode de serie, on remet à 0
  • if estserie(sub) and estserie(sub)!=estserie(film): ok=0
  • return ok
  • #crée les listes de listes de mots
  • motsfilms=[motsde(i) for i in films]
  • motssubs=[motsde(i) for i in subs]
  • #parcours les subs
  • cpte=s=0
  • for sub_ in motssubs:
  • f=0
  • for film_ in motsfilms:
  • #si correspondance et si noms pas strictement identiques
  • if corresp(sub_, film_) and subs[s][:-3]!=films[f][:-3]:
  • print(' FILM= %s' % films[f])
  • print(' SS-TITRE= %s' % subs[s])
  • reponse='n'
  • if auto[0]!='a': reponse=input('Renomme? oui(o) non(n) ')
  • if auto[0]=='a' or reponse[0]=='o':
  • try:
  • os.rename(subs[s], films[f][:-3]+'srt')
  • cpte+=1
  • except OSError:
  • print('/!\ Erreur d\'accès ou fichier déjà existant!')
  • else:
  • print(' -> Sous-titre renommé.')
  • else:
  • print(' -> Ne fait rien.')
  • #print(reponse)
  • print('---------------------------------')
  • f+=1
  • s+=1
  • if cpte!=0: input('Terminé, %d sous-titres renommés!' % cpte)
  • else: input('Terminé, aucun sous-titre renommé.')
#!/usr/bin/env python
# -*- coding:cp1252 -*-

#Fichier:        ren-my-sub.py
#Version:        1.0 (écrit avec python3.2)
#Date:           2011/04/01 20:00
    
import os, re

print('*    Renomme les sous-titres    *')
print('*    correspondants aux films   *')
print('*   dans le répertoire courant  *\n')
#recuperation du chemin
chemin=os.getcwd()
print(chemin)
auto=input('-> Mode: auto(a) ou manuel(m) ? ')
print('---------------------------------')

#recuperation des noms de fichiers
fichiers=os.listdir(chemin)

#mots inutiles a rejeter
naze=re.compile('the|le|les|un|une|hd(tv)?|xvid|divx|dvd(rip)?')

# reg expr. des extensions
subext=re.compile('srt$')
filmext=re.compile('(avi|mkv|mp4|mpg)$')

#separation de fichiers dans films et subs
films=[fich for fich in fichiers if filmext.search(fich)]
subs =[fich for fich in fichiers if subext.search(fich)]

#separation des mots dans un fichier
def motsde(fichier):
    lesmots=re.split('\W+|_+',fichier)
    #enleve les mots de 1 lettre et l'extension
    mots=[i for i in lesmots if len(i)>1 and not subext.search(i) and not filmext.search(i)]
    #retourne une liste de listes
    return mots

#recupere n° de saison et episode si serie tv
#prend une liste de mots en entree
def estserie(mots):
    regex=re.compile('^(?P<sai>\d)(?P<epi>\d\d)$')
    regex2=re.compile('(?P<sai>\d{1,2})\D(?P<epi>\d\d)')
    for mot in mots:
        if regex.search(mot):
            episode=regex.search(mot).groups()
            return [int(i) for i in episode]
        elif regex2.search(mot):
            episode=regex2.search(mot).groups()
            return [int(i) for i in episode]
    return None

#prend en entree: liste de mots subs + liste de mots film
def corresp(sub, film):
    ok=0
    #parcours les 3 mots de chacun, si ca corresp: ok
    for i in range(min(len(sub),3)):
        for j in range(min(len(film),3)):
            if sub[i].lower()==film[j].lower() and not naze.search(sub[i].lower()): ok+=1
    #si mauvais episode de serie, on remet à 0
    if estserie(sub) and estserie(sub)!=estserie(film): ok=0
    return ok
    
#crée les listes de listes de mots
motsfilms=[motsde(i) for i in films]
motssubs=[motsde(i) for i in subs]

#parcours les subs
cpte=s=0
for sub_ in motssubs:
    f=0
    for film_ in motsfilms:
        #si correspondance et si noms pas strictement identiques
        if corresp(sub_, film_) and subs[s][:-3]!=films[f][:-3]:
            print('     FILM= %s' % films[f])
            print(' SS-TITRE= %s' % subs[s])
            reponse='n'
            if auto[0]!='a': reponse=input('Renomme? oui(o) non(n) ')
            if auto[0]=='a' or reponse[0]=='o':
                try:
                    os.rename(subs[s], films[f][:-3]+'srt')
                    cpte+=1
                except OSError:
                    print('/!\ Erreur d\'accès ou fichier déjà existant!')
                else:
                    print(' -> Sous-titre renommé.')
            else:
                    print(' -> Ne fait rien.')
            #print(reponse)
            print('---------------------------------')
        f+=1
    s+=1
if cpte!=0: input('Terminé, %d sous-titres renommés!' % cpte)
else: input('Terminé, aucun sous-titre renommé.')



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

CLASS BASS par Duke49
CLASS AUDIO (MCI WAV MMIO) par Duke49
Source avec Zip SYNTHÈSE VOCALE SAPI5 par a1l2i3z4e5e
Source avec Zip MON LECTEUR MP3 par kentharold
Source avec Zip Source avec une capture LECTEUR MULTIMÉDIA par lartiguef

 Sources en rapport avec celle ci

Source avec une capture TRIER SES FILMS PAR GENRE - INTERFACE ZENITY OU LIGNE DE COM... par sarathai
RENOMMER DES FICHIERS EN MASSE par ara3n
Source avec une capture SÉRIE POUR GÉNIE par Shakan972

Commentaires et avis

Commentaire de memejoueur le 25/07/2011 19:48:59

C'est mon 1er programme en python, qqu'est ce que vous en pensez?
Est-il utile? améliorable?
Hésitez pas à commenter :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Communication série RS232 en python (PC - PC) [ par dayiri ] Salutje souhaiterais savoir comment ecrire un script python pour faire communiquer deux PC via le port série (RS232). merci pour votre aide


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,387 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales