@OliviaDunham11

Как сделать replace в файле?

Задача: есть файл. В нем нужно заменить все слова CHLB на EKAT. И затем сохранить это содержимое в новый файл с новым названием.
-проверить файл с нужным расширением и форматом

    -создать новое назв файла заменой подстроки

    -открывает, читаем в текст, заменяем текст

    -сохранить текст в файл с новым назв

    """

 

import os

import shutil

from os import path

 

texttofind='CHLB'

 

texttoreplace='EKAT'

 

sourcepath = os.listdir('C:\\GIT\\sandbox\\airflow\\dags\\tst\\Queries\\')

 

for file in sourcepath:

 

    if m.endswith('.sql'):

        inputfile='C:\\GIT\\sandbox\\airflow\\dags\\tst\\Queries\\'+file

        print('Conversion in ongoing for: ' + inputfile)

       

        count = 0

        for line in fileinput.input(["a.txt"], inplace=True, backup='.bak'):

            if 'red' in line:

                no_of_red=line.count('red')

                sys.stdout.write(line.replace('red','RED'))

                count += no_of_red

    else:

        sys.stdout.write(line)

 

        with open ('Ctl_Chlb_RV_Hub_JobLedgerEntry.txt', 'w') as f:

        f.write(new_data)

   

    with open(inputfile,'r') as inputfile:

        filedata=inputfile.read()

        freq=0

        fred=filedata.count(texttofind)

       

    destinationpath='C:\\GIT\\sandbox\\airflow\\dags\\tst\\Queries\\' + file

    filedata=filedata.replace(texttofind,texttoreplace)

   

    with open(destinationpath, 'w') as file:

        file.write()

       

  file.close()
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 2
alternativshik
@alternativshik
А можно не выдумывать велосипедов, а сделать через sed из командной строки
Ответ написан
trapwalker
@trapwalker
Программист, энтузиаст
Да можно и питончиком из командной строки сделать:
py -x "x.replace('WHAT', 'TOWHAT')" < inputfile.txt > outputfile.txt

Это если файл текстовый. Если бинарный, то по-другому чуть-чуть, но в бинарном надо осторожно такое менять, может формат поплыть.
Если нужно исключить замену тех же символов в составе других слов, то вот так:
py -x "re.sub('(\W)What(\W)', '\\\1ToWhat\\\2', x)"" < inputfile.txt > outputfile.txt
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы