Пакет glob
, вероятно, немного более лаконичен, чем то, что вы используете.Затем просто откройте файлы, прочитайте текст, замените то, что вы хотите заменить, и запишите его обратно в тот же файл.
Будьте осторожны при редактировании файлов на месте - если вы используете это в неправильном местеВы можете нанести серьезный ущерб.
import os
import glob
root_path = r'D:\a\b' # use raw strings so \ is not escape character
patten = r'**\*.txt'
for path in glob.iglob(os.path.join(root_path, pattern), recursive=True):
# open the file to read and replace
with open(path) as fr:
text = fr.read().replace(' ', '\t').replace('\t\t', '\t')
# open the file to overwrite
with open(path, 'w') as fw:
path.write(text)