python写入文档没有成功换行.


url = 'https://www.qidian.com/chapter/1036425375/744555833/'
response = requests.get(url)  # requests.get请求的页面在有些时候和谷歌浏览器开发者工具显示的不一样,出现这种情况,以获取到的源码为准.
data = response.text
# 初步提取
p_content = re.findall('<p>(.*?)</p></main>',data)[0]

# 二次清洗
content = re.sub('<p>|</p>','',p_content)  #\n和\s因为换行的本质也是空,类似于空格
content = content.replace('<br>', '\n')  # 将<br>标签替换为换行符

# 保存数据
with open('山里的龙王.txt',mode='w',encoding='utf-8-sig') as f:
    f.write(content)
    f.write('\n\n')

我想请问大家,为什么我写入到文档后却没有成功的换行呢?

来,我教你咋换行:

import re 
import requests
url = 'https://www.qidian.com/chapter/1036425375/744555833/'
response = requests.get(url)  # requests.get请求的页面在有些时候和谷歌浏览器开发者工具显示的不一样,出现这种情况,以获取到的源码为准.
data = response.text
# 初步提取
p_content = re.findall('<p>(.*?)</p></main>',data)[0]
 
# 二次清洗
content = re.sub('<p>|</p>','-',p_content)  #\n和\s因为换行的本质也是空,类似于空格

result_list=content.split('-')

# 保存数据
with open('山里的龙王.txt',mode='w',encoding='utf-8-sig') as f:
    for data in result_list:
        f.write(data+'\n')

这样就能成功换行了。你试试。

在你提供的代码中,写入文档时使用了f.write(content)f.write('\n\n')两个写入操作,但它们之间没有添加换行符,因此会导致写入的内容没有换行。

为了确保写入的内容有换行,你可以在f.write(content)之后添加一个换行符,例如:

with open('山里的龙王.txt', mode='w', encoding='utf-8-sig') as f:
    f.write(content)
    f.write('\n\n')

这样,写入的内容就会有两个换行,保证了文本之间的分隔。如果你想要在文本之间只有一个换行,可以将第二个'\n'改为'\n'

如果在添加换行符之后还是没有换行,可能是因为源文本content中没有正确的换行符或者其中的换行符不是'\n'。在这种情况下,你可以尝试检查源文本的换行符,并将其转换为'\n',或者使用适当的方法处理源文本的格式。

问题点: 段落之间没有换行
处理方法: 将原来网页元素的分段标签直接替换为txt文档的换行符
修改第九行代码为

content = re.sub('<p>|</p>', '\n', p_content)