gpt4 book ai didi

python - 每 64 个字符插入换行符

转载 作者:行者123 更新时间:2023-12-01 01:28:10 31 4
gpt4 key购买 nike

有人能指出我在这方面的正确方向吗?

我有一个包含单词句子的字符串例如“他试图学习 Pythonic 或正则表达式来解决他的问题”

有问题的字符串非常大,我需要将其分成多行,每行不能超过 64 个字符。但我不能每 64 个字符插入一个换行符。我需要确保中断发生在第 64 个字符之前最接近的字符(一组字符),以确保该行不超过 64 个字符。例如我只能在空格、逗号或句号后插入换行符

我还需要非常高效的解决方案,因为它是一个会发生很多很多次的操作。

使用文本换行

我不确定 textwrap 是解决我的问题的方法,因为我需要保留输入字符串中的原始换行符。示例:

long_str = """
123456789 123456789 123456789 123456789 123456789 123456789
Line 1: Artificial intelligence (AI), sometimes called machine intelligence,
Line 2: is intelligence demonstrated by machines,
Line 3: in contrast to the natural intelligence displayed by humans and other animals.
Line 4: In computer science AI research is defined as
"""
lines = textwrap.wrap(long_str, 60, break_long_words=False)
print('\n'.join(lines))

我想要的是这样的:

123456789 123456789 123456789 123456789 123456789 123456789Line 1: Artificial intelligence (AI), sometimes called machine intelligence, Line 2: is intelligence demonstrated by machines, Line 3: in contrast to the natural intelligence displayed by humans and other animals. Line 4: In computer science AI research is defined as

但是 textwrap 给了我这个:

 123456789 123456789 123456789 123456789 123456789 123456789Line 1: Artificial intelligence (AI), sometimes calledmachine intelligence,  Line 2: is intelligence demonstratedby machines,  Line 3: in contrast to the naturalintelligence displayed by humans and other animals.  Line 4:In computer science AI research is defined as

我怀疑正则表达式可能是答案,但我无法用正则表达式解决这个问题。

最佳答案

在换行符上将长字符串拆分为单独的行。 “像往常一样”包裹每个单独的行,然后再次将所有内容连接到单个字符串。

import textwrap

long_str = """
123456789 123456789 123456789 123456789 123456789 123456789
Line 1: Artificial intelligence (AI), sometimes called machine intelligence,
Line 2: is intelligence demonstrated by machines,
Line 3: in contrast to the natural intelligence displayed by humans and other animals.
Line 4: In computer science AI research is defined as
"""

lines = []
for line in long_str.split('\n'):
lines += textwrap.wrap(line, 60, break_long_words=False)
print('\n'.join(lines))

由于 textwrap 返回字符串列表,因此您无需执行任何其他操作,只需继续将它们粘贴在一起并在末尾连接它们即可。

关于python - 每 64 个字符插入换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53164077/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com