python打开文件时'w'与'wb'的区别,'r'与'rb'的区别
2017-09-25 13:46
411 查看
在windows中的换行符是\r\n 在python代码中, 如果以 如果以w方式写入: f = open('./abcd', "w") f.write('abc\nabcd') f.close() 文本w方式写入时, 遇到\n自动替换成\r\n, 以二进制文本读: >> > f = open('./abcd', 'rb') >> > print(f.read()) 结果: b'abc\r\nabcd' 以文本读: >> > f = open('./abcd', 'r') >> > print(f.read()) 结果: abc abcd 综上可知, 只文本w方式写入时, 遇到\n自动替换成\r\n, 所以用二进制读取时, 显示\r\n的格式, 自然以文本读时, 会自动换行 如果以wb方式写入: f = open('./abcd', "wb") f.write('abc\nabcd'.encode("utf-8")) f.close() 以二进制文本读: f = open('./abcd', "rb") print(f.read()) 结果: 'abc\nabcd' 以文本读: f = open('./abcd', "r") print(f.read()) 结果(换行): abc abcd 因为这种情况是二进制方式写入的, 所以只写入了一个\n, 而只有一个\n在windows中 并不会被识别为换行符, 所以当以rb的方式读取时, 结果是 'abc\nabcd' 当以r的方式读取时, 又自动将\n识别成换行符, 所以结果时 对于 Python 3 环境: r:Python 将会按照编码格式进行解析,read() 操作返回的是str rb:也即 binary mode,read() 操作返回的是bytes 也就是说, 如果以文本方式写入的文件, 无需制定编码. 而以二进制文本写入时, 由于写入的内容要求为bytes,所以通过str.encode('charset')
来返回bytes
相关文章推荐
- python文件处理,b模式的读写,rb, wb,编码的两种方式
- python os.system os.popen 区别【os.popen执行linux命令tail -100 filename可以打开linux中文件内容】
- python文件打开方式详解——a、a+、r+、w+区别
- python基础-文件读写'r' 和 'rb'区别
- python中用open打开文件,报错 IOError:[Error 22] invalid mode ('rb') or filename
- C/C++/Python等 使用二进制模式打开文件与不使用二进制模式的区别
- 转载:python文件打开方式详解——a、a+、r+、w+区别
- python文件打开方式详解——a、a+、r+、w+区别
- python基础-文件读写'r' 和 'rb'区别
- python文件打开方式详解——a、a+、r+、w+区别
- fopen在“r”“rb”方式打开文件后,fread的区别
- python文件打开参数区别
- python文件打开方式的区别
- python中打开文件区别
- python文件打开方式详解——a、a+、r+、w+区别
- Python打开文件出现IOError: [Errno 22] invalid mode ('rb') or filename
- Python中以'r','r+','w','w+','a','a+'打开文件的区别
- fopen打开文件模式rb和rb+有什么区别
- Python打开、读取文件相关操作
- 【转】python基础===codecs打开文件,解决文件编码格式的问题