#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
функцию