как правильно записать стихотворение в файл
Не могу понять почему в консоль результат выводится в столбец, а в файл то же содержимое выводится в строку?`
import requests
from bs4 import BeautifulSoup
url = 'https://www.culture.ru/poems/32975/zhdi-menya-i-ya-vernus'
forsa = requests.get(url)
data = BeautifulSoup(forsa.text, 'lxml')
jasse = data.find('div', class_='xiryu').find('p')
with open('proba.txt', 'w', encoding='utf-8') as file:
for coit in jasse:
boxy = coit.text
file.write(boxy)
print(boxy)
Ответы (2 шт):
Автор решения: Kiselevsky Dima
→ Ссылка
boxy = coit.text
file.write(boxy)
file.write("\n") // добавить символ переноса строки
print(boxy)
Автор решения: Namerek
→ Ссылка
import requests
from bs4 import BeautifulSoup
from unicodedata import normalize
url = 'https://www.culture.ru/poems/32975/zhdi-menya-i-ya-vernus'
response = requests.get(url)
data = BeautifulSoup(response.text, 'lxml')
lines = [*map(lambda x: normalize('NFKC', str(x)), data.find('div', class_='xiryu').find('p').strings)]
with open('proba.txt', 'w', encoding='utf-8') as file:
file.write(
'\n'.join(lines)
)
Содержисое файла proba.txt:
Жди меня, и я вернусь.
Только очень жди,
Жди, когда наводят грусть
Желтые дожди,
Жди, когда снега метут,
Жди, когда жара,
Жди, когда других не ждут,
Позабыв вчера.
Жди, когда из дальних мест
Писем не придет,
Жди, когда уж надоест
Всем, кто вместе ждет.
UPD:
Немного проапгрейдил вариант. Работать будет в python3.8+. Добавлена обработка кейсов отсутствия данных при парсинге.
import requests
from bs4 import BeautifulSoup
from unicodedata import normalize
url = 'https://www.culture.ru/poems/32975/zhdi-menya-i-ya-vernus'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
lines = [*map(lambda x: normalize('NFKC', str(x)), txt_tag.strings if (
txt_tag := data.find('p') if (
data := soup.find('div', class_='xiryu')
) else None
) else None)]
with open('proba.txt', 'w', encoding='utf-8') as file:
file.write(
'\n'.join(lines)
)