Я пытаюсь использовать все слова в тексте, которые появляются только один раз.У меня есть бит, который находит, какие слова появляются только один раз, но когда я иду, чтобы заменить оригинальное слово версией .upper
, куча других вещей также становится заглавной.Это небольшая программа, так что вот код.
from collections import Counter
from string import punctuation
path = input("Path to file: ")
with open(path) as f:
word_counts = Counter(word.strip(punctuation) for line in f for word in line.replace(")", " ").replace("(", " ")
.replace(":", " ").replace("", " ").split())
wordlist = open(path).read().replace("\n", " ").replace(")", " ").replace("(", " ").replace("", " ")
unique = [word for word, count in word_counts.items() if count == 1]
for word in unique:
print(word)
wordlist = wordlist.replace(word, str(word.upper()))
print(wordlist)
Вывод должен быть 'Genesis 37:1 Jacob lived in the land of his father's SOJOURNINGS, in the land of Canaan.
, так как временное пребывание - это первое слово, которое появляется только один раз.Вместо этого он выводит GenesIs 37:1 Jacob lIved In the land of hIs FATher's SOJOURNINGS, In the land of Canaan.
Поскольку некоторые другие буквы появляются в ключевых словах, он также пытается использовать их заглавными буквами.
Есть идеи?