Python помещает все слова в одну строку

#python #arrays #python-3.x #python-requests

#python #массивы #python-3.x #python-запросы

Вопрос:

Я пытаюсь удалить некоторые слова (расположенные в текстовом файле) из другого текстового файла. Хотя мой код, похоже, работает, я заметил, что он перестал удалять слова в определенный момент текстового файла. Затем я проверил текстовый файл и заметил, что Python записывает все слова в одну строку, и в этой строке есть ограничение на количество символов, что приводит к остановке процесса. Как я могу это обойти?

Вот мой код:

 # text file list to array

with open('function_words.txt') as functionFile:
    functionWords = [word for line in functionFile for word in line.split()]

# delete the word on the text file if it matches one of the array

with open("results.txt", "r ") as newfile: 
    newfile.write(' '.join(i for i in toPrint.read().split() if i not in functionWords))
 

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

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

1. объединить с n вместо пробела?

2. @Sayse, который помещает каждое слово в новую строку, чего я тоже не пытаюсь сделать:(

3. Неясно, что вы пытаетесь сделать, попытка сделать это с пониманием, вероятно, делает это намного сложнее для вас, чем это должно быть

Ответ №1:

вам нужно будет поставить «n» после соединения со строкой, если вы хотите, чтобы каждая строка была отдельной в новом файле. Обратите "n" внимание на приведенное ниже.

 with open("results.txt", "r ") as newfile: 
    newfile.write(' '.join(i for i in toPrint.read().split() if i not in functionWords)  "n")
 

alt. вы могли бы создать список строк, которые вы хотите написать, и написать newFile , используя эти writelines() методы. Что — то вроде:

 newFile.writelines(my_list_of_lines_to_write)