计算机基础知识

一.应用程序任何操作硬件的请求都需要向操作系统发起系统调用,然后由操作系统去操作硬件

二.文本编辑器存取文件的原理

  1.打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放在内存中的,断电数据丢失
  2.要永久保存,需要点击保存按钮:编辑器把内存的数据刷到硬盘上。
  3.在我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都是在编写一堆字符而已。

三:python解释器执行py文件的原理

  第一阶段:python解释器启动,此时就相当于启动了一个文本编辑器
  第二阶段:python解释器相当于文本编辑器,去打开test.py的代码,从硬盘上将test.py的文本内容读到内存中
  第三阶段:python解释器解释执行刚刚加载到内存中test.py的代码,从硬盘上将test.py代码

四:总结python解释器与文件本编辑的异同

  1.相同点:python解释器是执行文件内容的,因而python解释器具备读py文件的功能,功能,这一点与文本编辑器一样
  2.不同点:文本编辑器将文件读入内存后,是为了显示或者编辑,根本不会理会python的语法,而python解释器将文件内容读入内存后,开始执行python代码、识别python语法。
字符编码

一.什么是字符编码 

过程:
字符-----(翻译过程)----->数字
这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之为字符编码

二.以下两个场景下涉及到字符编码的问题:

  1.一个python文件中的内容是由一堆字符组成的,存取均涉及到字符编码问题
  2.python中的数据类型字符串是由一串 字符组成的

三.字符编码发展的三个阶段

  阶段一:现代计算机起源于美国,最早诞生也是基于英文考虑的ASCII
  阶段二:为了满足中文和英文,中国人制定了GBK
  阶段三:各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码
  1.能够兼容万国字符
  2.与全世界所有的字符编码都有映射关系,这样就可以转换成任意国家的字符编码
总结:内存中统一采用Unicode,浪费空间来换取可以转换成任意编码(不乱码),硬盘可以采用各种编码,如utf—8,保证存放于硬盘或者基于网络传输的数据量很小,提高传输效率与稳定性。

# coding:gbk
x = "上" # 文件头指定的编码,即gbk格式的二进制
print(type(x))
--><class 'str'>
x = u"上" # 存成unicode格式的二进制
print(x,type(x))
-->上 <class 'str'>
print(x)
-->上
x = u"上"
print([x,])
-->['上']
res=x.encode('gbk')
print([res,])
-->[b'\xc9\xcf'] x = "上" # 在python3中,存成unicode格式的二进制
print(type(x)) res1=x.encode('utf-8')
print(res1,type(res1)) unicode----------encode---------->gbk二进制
res2=x.encode('gbk')
print(res2,type(res2)) gbk二进制---------decode---------->unicode
print(res2.decode('gbk')) open(r'D:\SH_fullstack_s3\day07\a.txt')
f=open(r'a.txt',encoding='utf-8') #向操作系统发送请求,要求操作系统打开文件 print(f) # f的值是一个文件对象
print(f.read()) f.close() # 向操作系统发送请求,要求操作系统关闭打开的文件
print(f)
f.read()

强调:一定要在程序结束前关闭打开的文件

# 上下文管理with
with open(r'a.txt',encoding='utf-8') as f,\
open('b.txt',encoding='utf-8') as f1:
print(f.read())
print(f1.read())

文件处理介绍

一 文件的打开模式

r: 只读模式L(默认的)
w: 只写模式
a: 只追加写模式

二 控制读写文件单位的方式(必须与r\w\a连用)

t : 文本模式(默认的),一定要指定encoding参数
优点: 操作系统会将硬盘中二进制数字解码成unicode然后返回
强调:只针对文本文件有效

b: 二进制模式,一定不能指定encoding参数

with open('a.txt',mode='rt',encoding='utf-8') as f:
data=f.read()
print(data,type(data)) with open('1.png',mode='rt',encoding='utf-8') as f:
data=f.read() with open('1.png',mode='rb',) as f:
data=f.read()
print(data,type(data)) with open('a.txt',mode='rb',) as f:
data=f.read()
# print(data,type(data))
print(data.decode('utf-8')) with open('a.txt',mode='rt',encoding='utf-8') as f:
data=f.read()
print(data)

一 r: 只读模式L(默认的)

  1 当文件不存时,会报错
  2 当文件存在时,文件指针指向文件的开头

with open('a.txt',mode='rt',encoding='utf-8') as f:
res1=f.read()
print('111===>',res1)
res2=f.read()
print('222===>',res2) print(f.read())
print(f.readable())
print(f.writable())
print(f.readline())
print(f.readline()) for line in f:
print(line) l=[]
for line in f:
l.append(line)
print(l)
print(f.readlines())

二 w: 只写模式

  1 当文件不存时,新建一个空文档

  2 当文件存在时,清空文件内容,文件指针跑到文件的开头

with open('c.txt',mode='wt',encoding='utf-8') as f:
print(f.readable())
print(f.writable())
print(f.read()) f.write('哈哈哈\n')
f.write('你愁啥\n')
f.write('瞅你咋地\n') f.write('1111\n2222\n333\n4444\n') info=['egon:123\n','alex:456\n','lxx:lxx123\n']
for line in info:
f.write(line)
f.writelines(info) with open('c.txt',mode='rb') as f:
print(f.read()) with open('c.txt',mode='wb') as f:
f.write('哈哈哈\n'.encode('utf-8'))
f.write('你愁啥\n'.encode('utf-8'))
f.write('瞅你咋地\n'.encode('utf-8'))

三 a: 只追加写模式

  1 当文件不存时,新建一个空文档,文件指针跑到文件的末尾

  2 当文件存在时,文件指针跑到文件的末尾

with open('c.txt',mode='at',encoding='utf-8') as f:
print(f.readable())
print(f.writable())
f.read() f.write('虎老师:123\n')

Python入门字符编码的更多相关文章

  1. Python基础-字符编码与转码

    ***了解计算机的底层原理*** Python全栈开发之Python基础-字符编码与转码 需知: 1.在python2默认编码是ASCII, python3里默认是utf-8 2.unicode 分为 ...

  2. Python的字符编码

    Python的字符编码 1. Python字符编码简介 1. 1  ASCII Python解释器在加载.py文件的代码时,会对内容进行编码,一般默认为ASCII码.ASCII(American St ...

  3. Python常用字符编码(转)

    Python常用字符编码   字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...

  4. Python常见字符编码间的转换

    主要内容:     1.Unicode 和 UTF-8的爱恨纠葛     2.字符在硬盘上的存储     3.编码的转换     4.验证编码是否转换正确     5.Python bytes类型 前 ...

  5. python 3字符编码

    python 3字符编码 官方链接:http://legacy.python.org/dev/peps/pep-0263/ 在Python2中默认是ascii编码,Python3是utf-8编码 在p ...

  6. Python 的字符编码

    配置: Python 2.7 + Sublime Text 2 + OS X 10.10 本文意在理清各种编码的关系并以此解决 Python 中的编码问题. 1 编码基本概念 只有先了解字符表.编码字 ...

  7. Python 入门之编码

    Python 入门之编码 1.编码初识: (1)ASCII码 :256 个 英文1个字节,不支持中文 (2)GBK(国标) : 英文1个字节 中文两个字节 (3)unicode (万国码):英文4个字 ...

  8. 转:Python常见字符编码及其之间的转换

    参考:Python常见字符编码 + Python常见字符编码间的转换 一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Cod ...

  9. Python入门笔记(14):Python的字符编码

    一.字符编码中ASCII.Unicode和UTF-8的区别 点击阅读:http://www.cnblogs.com/kingstarspe/p/ASCII.html 再推荐一篇相关博文:http:// ...

随机推荐

  1. js原型及原型链

    一. 普通对象与函数对象  JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object ,Function 是JS自带的函数对象.下面举例说明 function f ...

  2. 第2章 netty介绍与相关基础知识

    NIO有一个零拷贝的特性.Java的内存有分为堆和栈,以及还有字符串常量池等等.如果有一些数据需要从IO里面读取并且放到堆里面,中间其实会经过一些缓冲区.我们要去读,它会分成两个步骤,第一块它会把我们 ...

  3. elasticsearch2.x优化小结(单节点)

    最近es一直卡顿,甚至宕机,用bigdesk看了,才晓得,es一直用的默认配置(可以看出我有多懒,先前数据量小,es足以应付,现在数据量上去后就不行了). 这里总结三方面: 1.提升jvm内存 vi ...

  4. B和strong以及i和em的区别(转)

    B和strong以及i和em的区别 (2013-12-31 13:58:35) 标签: b strong i em 搜索引擎 分类: 网页制作 一直以来都以为B和strong以及i和em是相同的效果, ...

  5. C++中的一类临时对象

    类名(参数名)这样的对象是临时对象,不能取地址,不能被引用,不过可以给同类型的其他对象赋值,该临时对象定以后可以进行一次操作,然后立即销毁. 当我们定义一个对象以后并不想立即给它赋初值,而是以后给它赋 ...

  6. 高性能MySQL笔记-第5章Indexing for High Performance-001B-Tree indexes(B+Tree)

    一. 1.什么是B-Tree indexes? The general idea of a B-Tree is that all the values are stored in order, and ...

  7. Leafletjs学习教程和相关代码整理

    一.Leaflet简介 官方网站:http://leafletjs.com/ 官网上的api和例子大家多看看,多学习学习. Lefalet 是一个为建设移动设备友好的互动地图,而开发的现代的.开源的 ...

  8. 检测评价函数 IOU

    在目标检测的评价体系中,有一个参数叫做 IoU(intersection-over-union),简单来讲就是模型产生的目标窗口和原来标记窗口的交叠率.具体我们可以简单的理解为: 即检测结果(Dete ...

  9. python安装opencv库

    1.打开anaconda prompt(安装anaconda会默认安装),键入 pip install opencv-python,如下: 2.安装过程如下所示: 3 测试是否安装成功 上述就说明安装 ...

  10. Ubuntu小记

    一. Ubuntu分区记忆 参考教程调整: 1. /boot用于安装grub,设为主分区 2. /根目录20G一般足够 3. /home剩下的给home 4. swap空间=物理内存 挂载点 大小 类 ...