Вы можете использовать строковый метод isalpha () , чтобы проверить, есть ли в слове только буквенные символы, и вы можете использовать lower () , чтобы преобразовать его в нижний регистр.Я предполагаю, что вам не нужны апострофы или другие знаки препинания в ваших словах, но если это нормально, вы можете удалить такие символы с помощью замены, например так:
word.replace("'",'').isalpha()
Также лучше простооткрыть файл один раз, чем открыть и закрыть его тысячу раз, что вы и делаете, открывая его в теле цикла.Это не только неэффективно, но и может привести к странным результатам, если задействована буферизация.
Я переписал его с помощью предложения 'with', которое примерно равно открытию файла в начале предложения и закрытию его вend.
Не так важно, но вы можете использовать ключевое слово 'sep' в print () вместо ручной вставки вкладки, например:
print(arg1, arg2, sep='\t')
Пересмотр вашего кода:
from collections import Counter
file = open(r"/Users/abdullahtammour/Documents/txt/1984/1984.txt", "r", encoding="utf-8-sig")
wordcount={}
wordcount = Counter((file.read().split()))
file.close()
with open("/Users/abdullahtammour/Documents/txt/1984/1984.csv", "w") as file:
for word, count in wordcount.items():
if word.isalpha():
print(word.lower(), count, sep='\t', file=file)