Внесите изменения в несколько файлов в цикле for в python

#python #for-loop #python-os

Вопрос:

У меня есть 100 файлов с текстом. Формат текста такой, что в каждой строке появляется новое предложение. Как показано ниже

 Include details about your goal Describe expected and actual results Include any error messages  

Теперь я создал функцию, которая вносит изменения в вышеприведенные предложения, и вводом функции является предложение. Нравится,

 masked_text('Include details about your goal')  

Теперь я хочу реализовать эту функцию в предложениях каждого файла с помощью цикла for. Я написал этот код, но это

 import os from tqdm import tqdm files = os.listdir("/path/to/directory/") for sentence_file in tqdm(files):  with open("/path/to/directory/" sentence_file) as f_input:  text = f_input.read()  new_text = masked_text(text)  with open('/new/dir/path/'   sentence_file,'w') as f_output:  f_output.write(new_text)  f_output.close()  

Но этот код выдает результат в виде одного предложения. Как показано ниже,

 Include details about your goal Describe expected and actual results Include any error messages  

Я попытался, как показано ниже, но это даст мне одно предложение в качестве вывода для каждого файла. Так что бесполезно.

 for sentence_file in tqdm(files):  with open("/path/to/directory/" sentence_file,'r') as f_input:  for line in f_input:  new_text = masked_text(line)  with open('/new/dir/path/' sentence_file,'w') as f_output:  f_output.write(new_text)  f_output.close()  

Где я делаю что-то не так?

Комментарии:

1. Вы должны включить "n" в конце каждой строки

2. Здравствуйте, попробуйте поместить свое предложение в var в цикле для вас и каждый раз сбрасывайте его

3. @vks Извините, я не могу. Текстовые файлы содержат предложения в количестве 400 тыс.

4. @AdityaParikh добавьте его в свою masked_text функцию