python关于字符串、字节流(str(), bytes(字符串,encoding='utf-8'), encode('utf-8'), decode('utf-8'))的使用

本文详细讲解了Python中字符串与字节流的转换及操作方法,包括使用str()、bytes()、encode()和decode()函数,以及如何对字节流进行split等常见操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python关于字符串、字节流(str(), bytes(字符串,encoding=‘utf-8’), encode(‘utf-8’), decode(‘utf-8’))的使用

例:

a = b's-t-r'

ch = bytes('中文',encoding='utf-8')

zw = '中文'.encode('utf-8')

list1 = a.split(b'-')   

#对字节流也可以使用字符串的拆分方法,前提替换字符也要是二进制字符

print(a,len(a),'--',ch,len(ch),'--',zw,len(zw))

print(list1,len(list1)

print(str(ch,encoding='utf-8'),len(str(ch)))

‘’’
b’s-t-r’ 5 – b’\xe4\xb8\xad\xe6\x96\x87’ 6 – b’\xe4\xb8\xad\xe6\x96\x87’ 6
[b’s’, b’t’, b’r’] 3
中文 27
str() 如果不带编码会将二进制的中文字符所有符号解读为字符串,包括b’’(b和2个单引号都会算作是单个字符)
‘’’

### Python中的UTF-8编码详解 #### UTF-8编码简介 UTF-8是一种变长字符编码机制,能够兼容ASCII并支持UNICODE标准下的几乎所有字符。对于单字节的符号,UTF-8'`参数来确保数据按照UTF-8格式被正确解析: ```python with open('example.txt', 'w', encoding='utf-8') as f: f.write('你好') ``` 如果遇到带有BOM标记的UTF-8文件,在打开这类文件时应特别注意设置合适的编码选项。例如,针对UTF-8 with BOM的情况,应该使用`utf-8-sig`作为编码名称: ```python with open('file_with_bom.csv', 'r', encoding='utf-8-sig') as csvfile: content = csvfile.read() ``` 此外,还可以通过`.encode()`方法将Unicode对象转换为特定编码形式的数据流,以及利用`.decode()`函数实现相反过程——即把字节数组还原回原始文本串。下面给出一段示范代码展示如何完成这两种变换: ```python original_str = "你好" encoded_bytes = original_str.encode("utf-8") decoded_str = encoded_bytes.decode("utf-8") print(f"Original String: {original_str}") print(f"After Encoding to UTF-8 bytes: {list(encoded_bytes)}") print(f"After Decoding back from bytes: {decoded_str}") ``` 这段程序先定义了一个中文问候语作为初始字符串变量`original_str`,接着调用了其内置方法`.encode()`将其转变为UTF-8格式的字节序列存储到新创建的变量`encoded_bytes`之中;最后一步则是再次运用`.decode()`恢复出原本的内容赋给另一个新的字符串型态变量`decoded_str`以便后续打印输出验证整个流程是否成功执行完毕[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值