对Python中 \r, \n, \r\n的彻底理解

回车和换行的历史:

机械打字机有回车和换行两个键作用分别是:  

换行就是把滚筒卷一格,不改变水平位置。 (即移到下一行,但不是行首,而是和上一行水平位置一样)

回车就是把水平位置复位,不卷动滚筒。 (即将光标移到行首,但是不会移到下一行,如果继续输入的话会覆盖掉前面的内容)

Enter = 回车+换行(\r\n)

理解:

\n是换行,英文是New line

\r是回车,英文是Carriage return 

unix换行:\n(0x0A)

MAC回车:\r(0x0D)

WIN回车换行:\r\n(0x0D,0x0A)

补充知识: python文件输出unicode转码

有时候利用python爬虫获得的文件是Unicode的编码格式。输出大概是:

{"\u5185\u5bb9": "\u5c11\u5e74\u4e0d\u8bc6\u6101\u6ecb\u5473\uff0c\u7231\u4e0a\u5c42\u697c\u3002\u7231\u4e0a\u5c42\u697c\u3002\u4e3a\u8d4b\u65b0\u8bcd\u5f3a\u8bf4\u6101\u3002 \u800c\u4eca\u8bc6\u5c3d\u6101\u6ecb\u5473\uff0c\u6b32\u8bf4\u8fd8\u4f11\u3002\u6b32\u8bf4\u8fd8\u4f11\u3002\u5374\u9053\u5929\u51c9\u597d\u4e2a\u79cb\u3002scrapy\u4e2d\u6587\u7f51\uff08http://www.scrapyd.cn\uff09\u6574\u7406", "\u4f5c\u8005": "\u8f9b\u5f03\u75be"},

类似这种。

根据不同的编码,读取文件输出的时候,加上对应的解码方式就行了。如:

with open("mingyan.json",'r',encoding='unicode_escape')as file:
  message = file.read()
  print(message)
  print(type(message))
encoding = ‘编码方式'

编码方式其实有很多。一般文件上面有个

# test for with.py
# -*- coding: utf-8 -*-
# __author__ = 'Carina'

这就是指出了编码方式。方便以后的该文件的处理操作

以上这篇对Python中 \r, \n, \r\n的彻底理解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python实现把回车符\r\n转换成\n

    最近在做cocos2d-x的简明配置,发现有的朋友的文本编辑器,自动将\r\n截断成\n,(在unix上换行使用\n,windows上,换行使用的是\r\n)于是,写了这个脚本,希望对一些朋友有所帮助,不用一行一行去改 import os def replace(filePath, w2u): try: oldfile = open(filePath, "rb+") #这里必须用b打开 path, name = os.path.split(filePath) newfile = ope

  • Python中的__new__与__init__魔术方法理解笔记

    很喜欢Python这门语言.在看过语法后学习了Django 这个 Web 开发框架.算是对 Python 有些熟悉了.不过对里面很多东西还是不知道,因为用的少.今天学习了两个魔术方法:__new__ 和 __init__. 开攻: 如果对 Python 有所简单了解的话应该知道它包含类这个概念的.语法如下: 复制代码 代码如下: class ClassName:     <statement - 1>:         .         .           .     <state

  • 对Python中GIL(全局解释器锁)的一点理解浅析

    目录 前言 为什么需要 GIL GIL 的实现 几点说明 GIL 优化 用户数据的一致性不能依赖 GIL 总结 参考文档 前言 GIL(Global Interpreter Lock),全局解释器锁,是 CPython 为了避免在多线程环境下造成 Python 解释器内部数据的不一致而引入的一把锁,让 Python 中的多个线程交替运行,避免竞争. 需要说明的是 GIL 不是 Python 语言规范的一部分,只是由于 CPython 实现的需要而引入的,其他的实现如 Jython 和 PyPy

  • Python 中由 yield 实现异步操作

    yield在python中初学时,觉得比较难理解.yield的作用: ①返回一个值.②接收调用者的参数 分析下面的代码: #!/usr/bin/env python3 # -*- coding:utf-8 -*- def consumer(): r = '' while True: n = yield r print("[Consumer] n = %d" %n) if not n: return print("[Consumer] consuming %s..."

  • python 中split 和 strip的实例详解

     python 中split 和 strip的实例详解 一直以来都分不清楚strip和split的功能,实际上strip是删除的意思:而split则是分割的意思. python中strip() 函数和 split() 函数的理解,有需要的朋友可以参考下. splite 和strip 都是Python 对字符串的处理. splite 意为分割,划分. a='123456' a.split('3') 输出为 ['12', '456'] 可以看到,使用何种字符切割,该字符也被略去.例如这里的字符"3&

  • 浅谈Python中range和xrange的区别

    range()是Python的内置函数,用于创建整数的列表,可以生成递增或者递减的数列.xrange也有相同的功能, 今天来看下它们之间的不同. range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列. range示例: >>> range(6) [0, 1, 2, 3, 4, 5] >>> range(1,6) [1, 2, 3, 4, 5] >>> r

  • Python中property属性实例解析

    本文主要讲述的是对Python中property属性(特性)的理解,具体如下. 定义及作用: 在property类中,有三个成员方法和三个装饰器函数. 三个成员方法分别是:fget.fset.fdel,它们分别用来管理属性访问: 三个装饰器函数分别是:getter.setter.deleter,它们分别用来把三个同名的类方法装饰成property. fget方法用来管理类实例属性的获取,fset方法用来管理类实例属性的赋值,fdel方法用来管理类实例属性的删除: getter装饰器把一个自定义类

  • Python中%r和%s的详解及区别

    Python中%r和%s的详解 %r用rper()方法处理对象 %s用str()方法处理对象 有些情况下,两者处理的结果是一样的,比如说处理int型对象. 例一: print "I am %d years old." % 22 print "I am %s years old." % 22 print "I am %r years old." % 22 返回结果: I am 22 years old. I am 22 years old. I a

  • python中字符串前面加r的作用

    本文实例讲述了python中字符串前面加r的作用.分享给大家供大家参考.具体分析如下: 字符串前面加r,表示的意思是禁止字符串转义 >>> print "asfdas\n" asfdas >>> print "asfdas\\n" asfdas\n >>> print "asfdas\n" asfdas >>> print r"asfdas\n" asfd

  • 详解Python中的各种转义符\n\r\t

    Python中的各种转义符\n\r\t 转义符 描述 \ 续行符(在行尾时) \\ 反斜杠符号 ' 单引号 " 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 \n 换行 \v 纵向制表符 \t 横向制表符 \r 回车 \f 换页 \oyy 八进制数yy代表的字符,例如:\o12代表换行 \xyy 十进制数yy代表的字符,例如:\x0a代表换行 \other 其它的字符以普通格式输出 Python中的正斜杠与反斜杠 首先,"/"左倾斜是正斜杠,

  • 简单了解python中的f.b.u.r函数

    这篇文章主要介绍了简单了解python中的f.b.u.r函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 f/format() 格式化操作,相当于format()函数 案例如下: name = 'wy' l = f'{name}' print(l) # 打印出的l是 wy b:bytes 二进制 拓展: encode和decode也可以在二进制和字符串之间转换 u/U 表示unicode字符串 不是仅仅是针对中文, 可以针对任何的字符串,代表

随机推荐