В файл выводится неверное количество букв
В первом файле дана строка из букв и цифр, посчитать количество букв в строке и вывести ответ во второй файл.
В первом файле написано: 1 1 1 b b b b b
a = open('input.txt','r+')
a.read()
b = open("out.txt","w+")
b.write(str(len([i for i in a if i.isalpha()])))
a.close()
b.close()
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
В a у вас хэндлер файла. Вы не записали прочтённый файл никуда. И учитесь сразу пользоваться with лучше, чтобы не закрывать файлы вручную. И давать переменным осмысленные имена желательно:
with open('input.txt','r+') as a:
text = a.read()
with open("out.txt","w+") as b:
b.write(str(len([i for i in text if i.isalpha()])))
Хотя этот подсчёт можно короче записать:
sum(map(str.isalpha, text))
Автор решения: Kekushka
→ Ссылка
import re
pattern = '[a-zA-Z]+'
with open('input.txt', 'r+', encoding='utf-8') as file:
line = file.readline()
a = ''.join(str(x) for x in line)
a = len(re.findall(pattern, a))
with open('output.txt', 'a', encoding='utf-8') as file:
file.write(str(a))