2010-04-05 6 views
0

je voudrais remplacer les lignesPython 2.5.2 script ajouter « La fonction commence ici » à toutes les fonctions des fichiers d'un répertoire

function *{

par

function *{echo "The function starts here." 

où * est quoi que ce soit.

Une idée de comment faire ça en Python?

Cordialement

Javi

+0

est '' * vraiment "tout"? Peut-il contenir "{" lui-même? (Cela fait une différence dans la complexité de la regex.) –

+0

C'est vrai. Non, '*' ne contiendra pas '{'. – ziiweb

Répondre

0

Appliquer une expression régulière remplacer le texte. Le module que vous recherchez est re.

3
re.compile(r'(^function .*{)', re.M).sub(r'\1echo "The function starts here."', s) 
+0

+1 pour ne pas oublier d'utiliser 're.M'. –

1

si tous vos scripts sont "bien codés",

import fileinput,os 
root="/path" 
path=os.path.join(root,"mydir") 
os.chdir(path) 
for file in os.listdir("."): 
    if os.path.isfile(file) and file.endswith(".txt"): # do for txt files 
     for line in fileinput.FileInput(file,inplace=1): 
      line=line.rstrip() 
      if "function" in line and "{" in line:      
       s=line.split("{") 
       s.insert(1,'{echo "The function starts here."') 
       line=' '.join(s) 
      print line 
+0

avez-vous testé votre code? – SilentGhost

Questions connexes