2014-11-17 2 views
0

Я написал небольшую функцию с заменой(), чтобы очистить файлы перенаправления, чтобы вырвать логику и существенно уйти на чистом английском языке.Повторный вызов одной и той же функции в Python

До сих пор я получил:

def redir_cleanup(searchFor, replaceWith): 
    inputFile = open('input', 'r') 
    outputFile = open('output', 'w+') 

    for line in inputFile: 
     print "Replacing %s with '%s'" % (searchFor, replaceWith) 
     outputFile.write(line.replace(searchFor, replaceWith)) 

redir_cleanup("RedirectMatch permanent ", "") 
redir_cleanup("RewriteRule ^", "") 
redir_cleanup(" [L,R=301]", "") 
redir_cleanup("RewriteCond %{QUERY_STRING} ^search\=(", "") 
redir_cleanup(")$ [NC]", "") 
redir_cleanup("\+", " ") 
redir_cleanup("[NC,OR]", "") 
redir_cleanup("RewriteRule ^.* ", "") 

Но полоски только верхний вызов, мне нужно сделать петлю них каким-то образом?

+0

Я не проверял, разрешает ли это вашу проблему, но может быть полезно закрыть ваши файлы в конце функции. (или используйте 'with'). – Kevin

+0

Спасибо, это не решило проблему, но я забыл закрыть эту переписку. Я играл с ним и писал несколько раз :) –

+0

Вам нужно применить каждый фильтр к каждой строке в файле. Таким образом, вы получили это наизнанку. –

ответ

1

Ваша функция читается из файла с одним именем, а затем записывается в файл с другим именем. Но имена никогда не меняются, поэтому он продолжает использовать один и тот же ввод. Попробуйте открыть файлы за пределами функции и передать их.