Python使用loremipsum包生成随机字符串出现字节前缀问题
解决loremipsum包生成文本带字节前缀(
b'xxx')的问题 嘿,这个问题我之前用这个包的时候也踩过坑!你看到的b'ante'、B'nibh'这种格式,是Python里的**字节串(bytes)**对象——因为这个loremipsum包大概率是基于Python 2开发的,而Python 3里字符串和字节串是严格区分的,所以包返回的内容就变成了字节串,而不是我们需要的普通字符串(str)。
解决方法很简单,只需要把字节串**解码(decode)**成Unicode字符串就行,具体分两种情况:
情况1:generate_paragraph返回字节串列表
如果你的paragraph是由单个单词字节串组成的列表(就像你输出里显示的每个单词都带b前缀),可以用列表推导式遍历解码,再拼接成完整段落:
from loremipsum import generate_paragraph sentences_count, words_count, paragraph = generate_paragraph() # 解码每个字节串单词,再用空格拼接成正常段落 formatted_paragraph = ' '.join([word.decode('utf-8') for word in paragraph]) print(formatted_paragraph)
情况2:返回单个大字节串
如果paragraph本身是一个完整的字节串(打印出来是b'ante ut a ut a...'这种整体带b前缀的),直接对整个段落解码就行:
from loremipsum import generate_paragraph sentences_count, words_count, paragraph = generate_paragraph() formatted_paragraph = paragraph.decode('utf-8') print(formatted_paragraph)
同样的,如果你用get_sentence()或get_sentences()生成句子,也可以用同样的解码方式处理:
from loremipsum import get_sentence sentence = get_sentence().decode('utf-8') print(sentence)
这样处理后,输出就不会再出现烦人的b/B前缀啦!
内容的提问来源于stack exchange,提问作者Shani
相关产品推荐
相关产品推荐

