从字符串中获取N个字符,其中包含完整的python单词

2024-04-24 09:47:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用此代码获取长文本的前4000个字符

text = data[0:4000]
print(text)

数据是包含长文本的变量,现在的问题是当我打印文本时,最后我得到半个单词,例如“con”,而单词应该是“content”

我想知道是否有办法确保这些词不会被截断


Tags: 数据代码text文本datacontent单词con
2条回答

一个简单的find语句查找从字符4000开始的空格,就开始了这个过程

x = txt.find(' ',4000)

但是为了避免截断最后一个单词,您需要测试find语句的结果

如果起始点4000在最后一个单词内,那么它将返回-1,您将打印/返回整个文本

如果起始点在最后一个单词之前,那么它将返回下一个空格的索引,您将打印到该索引

x = txt.find(' ',4000)
if x < 0:
    print (txt)
else:
    print (txt[:x])

还要记住,find的起点是以零为基础的,因此如果第4000个字符是一个空格,它将找到下一个空格。作为一个简单的示例,下面的代码将返回“四五”,而不是简单的“四”。如果这不是期望的结果,那么考虑在您的查找中使用3999。

txt = "four five six"
x = txt.find(' ',5)
print(txt[:x])
# returns "four five"

查找4000个字符后的第一个空格。您可以使用max来解释以超过4000个字符结尾但结尾没有空格的文本

ix = max(data.find(' ', 4000), 4000)
text = data[:ix]

相关问题 更多 >