Python 试图获取最新消息是可行的,但它将所有这些消息写在一行中

Python 试图获取最新消息是可行的,但它将所有这些消息写在一行中,python,python-3.x,Python,Python 3.x,我试图在下面的代码(url)中获取指定站点的所有最新新闻,这很有效,我从该站点获取最新新闻,并且我可以成功地将这些新闻打印在屏幕上,其中每一条新闻都在自己的行中 import requests from bs4 import BeautifulSoup import os url = 'https://www.ljportal.com/' headers = #my headers here page = requests.get(url, headers=headers) soup = Be

我试图在下面的代码(url)中获取指定站点的所有最新新闻,这很有效,我从该站点获取最新新闻,并且我可以成功地将这些新闻打印在屏幕上,其中每一条新闻都在自己的行中

import requests
from bs4 import BeautifulSoup
import os

url = 'https://www.ljportal.com/'
headers = #my headers here
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.text, 'lxml')

with open("news.txt", "a") as f:
    for i in soup.find_all("h3"):
        print(i.text)
但我的问题是,当我试图将其写入文件时,它在一行中获取所有新闻,而我不知道如何在每一行中获取它们。我只是用
f.write(I.text)
替换
print(I.text)

我只是用f.write(I.text)替换print(I.text)

默认情况下,
print
在它打印的内容之后添加一个换行符(它还将所有内容和一系列其他内容字符串化)<代码>IOBase.write只写你给它的任何东西,不做任何修改

您可以继续使用
print
,并使用
print(i.text,file=f)
将其输出发送到您的文件,或者您可以在
i.text
之后显式地在文件中写入换行符(或者
f.write(i.text+'\n')
或者
f.write(i.text);f.write('\n')

我只是用f.write(I.text)替换print(I.text)

默认情况下,
print
在它打印的任何内容后添加一个换行符(它还会将所有内容和一系列其他内容字符串化)。
IOBase.write
只写你给它的任何内容,不做任何修改


您可以继续使用
print
,并使用
print(i.text,file=f)
将其输出发送到您的文件,或者您可以在
i.text
之后显式地在文件中写入换行符(无论是
f.write(i.text+'\n')
还是
f.write(i.text);f.write('\n')

尝试使用f.writelines(i.text)相反。否则,只需将a/n转义字符添加到您的中,即可明确说明“未添加行分隔符”。IO类型可以提供更优化的实现,但基本上writelines()只在循环中调用write()。请尝试使用f.writelines(i.text)相反。否则,只需将a/n转义字符添加到您的中,即可明确说明“未添加行分隔符”。IO类型可以提供更优化的实现,但从根本上说,writelines()只调用write()在一个循环中。我现在意识到我是多么愚蠢,因为我忘了用每个for循环来写…无论如何,谢谢。我现在意识到我是多么愚蠢,因为我忘了用每个for循环来写…无论如何,谢谢。