Существуют N кол-во файлов, где необходимо найти названия функций и заменить их на формат по pep8 в этих же файлах.
Как это можно проделать ?
Пока имеется след.: я маплю все эти «неправильные» имена функций и превращаю их в «правильные». Остался вопрос как эти старые имена заменить на новые ?
import glob, os, re
def convert(name):
s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower()
if __name__ == '__main__':
dir = 'D:\..\..\..'
os.chdir(dir)
def_list = []
for file in glob.glob("*.py"):
f = open(file)
for line in f:
wostrip = line.lstrip()
if wostrip.startswith('def'):
method_name = wostrip[wostrip.find(' ') + 1:wostrip.find('(')]
if method_name != convert(method_name):
def_list.append((method_name, convert(method_name)))
end_list = list(set(def_list))
end_list.sort(key=lambda tup: tup[0])
for def_ in end_list:
old_name = def_[0] # старые имена
new_name = def_[1] # новые имена
def testTestTest()->def test_test_test()). Но проблема в том, что я не могу найти способ заменить каждое старое название функции на новое. В том примере, что вы скинули - не совсем то. Там идёт конкретная замена и только в определённом файле. – Heinrich Hertz Feb 22 '18 at 11:46