暮雨朝云 发表于 2023-6-7 17:03:21

以空行为分隔符分割文本

一个文本由多段文字组成,每段文本之间以一个空行分段,如何在Python以空行为分割符分割文本呢?
类似如下文本:

12345678
qwe .... rtyuio
yijouop[op

4567890-
#$%^ghj
一二三,../四 ghj   op

后即可uijoo
2345678
uiopppp
[{}:":';'

liuhongrun2022 发表于 2023-6-7 17:10:04

?什么意思?

liuhongrun2022 发表于 2023-6-7 17:13:22

看懂了,每三行分隔一次吗?

暮雨朝云 发表于 2023-6-7 17:38:43

生成一个列表,每一段文本为一个列表元素。总的来说就是想知道有没有办法可以以空行为分割符分割文本。
https://www.jiyik.com/tm/xwzj/prolan_1403.html 这个链接文章说用split("\n\n")但是不对。

sfqxx 发表于 2023-6-7 17:46:45

先占楼

isdkz 发表于 2023-6-7 18:02:45

对于这个问题,你可以使用Python的 split 方法和正则表达式。这里是一个例子:

text = """
12345678
qwe .... rtyuio
yijouop[op

4567890-
#$%^ghj
一二三,../四 ghj   op

后即可uijoo
2345678
uiopppp
[{}:":';'
"""

# 分割文本
segments = text.split('\n\n')

# 打印结果
for i, segment in enumerate(segments):
    print(f"Segment {i+1}:\n{segment}\n")

在这个例子中,我们将文本按照'\n\n'(代表空行)进行了分割,然后打印出了分割后的每一段。你会发现,每一段都是原来文本中空行之间的内容。

sfqxx 发表于 2023-6-7 18:05:38

可以使用以下代码将文本以空行分割成多个段落:


# 读入文本
with open('filename.txt', 'r') as f:
    text = f.read()

# 以空行分割文本
paragraphs = text.split('\n\n')

其中 `split()` 方法可以接收一个参数,该参数为要用来切割字符串的分割符。在这里我们使用两个连续的换行符 `\n\n` 作为分割符,这样就可以将文本按照空行进行分割了。分割后得到的每个元素即为一个段落,保存在列表 `paragraphs` 中。

需要注意的是,在 Windows 平台上,换行符通常是 `\r\n` 而不是单独的 `\n`,因此如果文本采用的是 Windows 的格式,那么需要将分割符改为两个连续的换行符 `\r\n\r\n`。

给个最佳答案{:10_254:}

sfqxx 发表于 2023-6-7 18:46:28

c{:10_244:}
页: [1]
查看完整版本: 以空行为分隔符分割文本