字符编码:

  1、运行程序的三个核心硬件:cpu、内存、硬盘

      任何一个程序要是想要运算,肯定是先从硬盘加载到当前的内存中,然后cpu根据指定的指令去执行操作

  2、python解释器运行一个py文件的步骤:

      1、将python解释器的代码由硬盘读到内存中去

      2、将py文件以普通文本的形式读到内存中去

      3、python解释器读取文件的内容,识别python的语法,并执行相应的操作

      ps:普通的文本编辑器和python解释器前两步都是一样的

  字符编码:字符编码针对的对象是文字文件,不需要考虑视频文件、音频文件等其它文件

  文本编辑器的输入和输出的过程:

      1、人在操作计算机的时候输入的是人能看懂的字符,但是计算机只能识别010101这样的二进制数据,那么如果输入的是字符的话,它就会通过字符编码表自动的将内容转换成相对应的二进制数据。

  编码类型:1Bytes = 8Bit

      ASCII码表:

          用八位二进制表示一个英文字符  所有的英文字符+符号最多也就在125位左右

      GBK:
          用2Bytes表示一个中文字符 1Bytes表示一个英文字符

      万国码unicode:

          统一用2Bytes表示所有的字符

          缺点:1、浪费存储空间 2、io次数曾减,程序的运行效率将会降低(致命)

          特点:

              1、用户在输入的时候,无论什么字符都能够兼容万国字符

              2、其它国家在编码的数据由硬盘读到内存的时候unicode与其他各个国家的编码都有对应的关系

      utf-8:unicode transformation format

          当内存中的unicode编码格式数据存到硬盘的是时候,会按照utf-8的编码将unicode的英文字符由原来的2Bytes变成1Bytes,并将中文字符由原来的2Bytes变成3Bytes

  现在的计算机内存都是用unicode编码进行存储,但是在硬盘中的话就是通过utf-8编码进行存储的。

  重点:  

      数据由内存保存到硬盘:内存中的unicode格式二进制数字    >>>>编码(encode)>>>>>   utf-8格式的二进制数据

      硬盘上的数据由硬盘读到内存:硬盘中的utf-8格式的的二进制数据  >>>>编码(decode)>>>>>  内存中的unicode格式的二进制数据

      保证不乱码的重点在于文本文件以什么编码编的就必须用什么编码来解

  python2:将py文件按照普通文件读入到解释器中默认使用ASCII码(因为在开发py2解释器的是时候unicode还没有盛行起来)

  python3:将py文件按照文本文件读入解释器中默认使用utf-8

      py3中的字符串默认就是unicode格式的二进制数

  文件的文件头:# coding:utf-8

      1、因为所有的编码都支持英文字符,所以文件头才能够正常生效    

  基于python解释器开发的软件,只要是中文,前面是都需要加一个u的,为的就是将python2(那个你不指定文件头的时候,默认使用的是ASCII来进行数据的存储,如果指定文件头,那么在运行的时候就会按照文件头的编码格式来存储数据),py3中的字符串默认就是unicode格式的二进制数

文件操作:文件是系统提供给用户操作复杂硬件(硬盘)的简易接口,人后者应用程序需要永久的保存数据

    使用的方法:

with open('文件名称', '文件的读取模式', encoding='编码类型') as f:  # f仅仅是一个变量名 你把它看成是一个遥控器
# 代码块用来执行对当前文件的操作

    文件的读取模式:对于文件的路径可以是相对路径或者是绝对路径

      r:只读模式(只能对当前文件进行读取,不能进行别的操作,如果文件不存在的话就会直接进行报错)

      w:慎用只写模式(文件如果不存在的话会自动创建一个新的文件在写入内容,但是如果文件存在的话,它会先清空文件内容然后在进行写入)

      a:只追加模式(文件如果不存在,会先自动创建一个新的文件,但是如果文件存在的话,他是不清空文件内容的,他会在文件的最后进行添加)

    文件的常用操作方法:

        readable:文件是否可读

        writable:文件是否是可写的

        read:一次性将文件的内容全部读出,读完一次之后,文件的光标已经在文件的末尾了,要是在读的话就没有内容了

        readlines:返回的是一个列表,列表中的一个个元素对应的就是文件的一行行内容  

        for循环:文件是可以被for循环的,每次循环只读取一行内容(这个方法就可以解决大文件一次性读取占用内存过高的问题)

        readline:只读取文件一行内容

    操作文件单位的方式:

        t:文本文件(t在指定的时候需要指定encoding参数,如果不指定默认使用的是操作系统默认的编码)

        b:二进制(一定不能指定encoding参数)

python基础--字符编码以及文件操作的更多相关文章

  1. Python之字符编码与文件操作

    目录 字符编码 Python2和Python3中字符串类型的差别 文件操作 文件操作的方式 文件内光标的移动 文件修改 字符编码 什么是字符编码? ''' 字符编码就是制定的一个将人类的语言的字符与二 ...

  2. Python基础(字符编码与文件处理)

    一.了解字符编码的知识储备 1.计算机基础知识(三副图) 2.文本编辑器存取文件的原理(notepad++,Pycharm,word) 打开编辑器就启动了一个进程,是在内存中运行的,所以在编辑器写的内 ...

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

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

  4. python学习道路(day3note)(元组,字典 ,集合,字符编码,文件操作)

    1.元组()元组跟列表一样,但是不能增删改,能查.元组又叫只读列表2个方法 一个 count 一个 index2.字典{}字典是通过key来寻找value因为这里功能比较多,所以写入了一个Code里面 ...

  5. Python-字典、集合、字符编码、文件操作整理-Day3

    1.字典 1.1.为什么有字典: 有个需求,存所有人的信息 这时候列表就不能轻易的表示完全names = ['stone','liang'] 1.2.元组: 定义符号()t = (1,2,3)tupl ...

  6. Python 入门基础6 --字符编码、文件操作1

    今日内容: 1.字符编码 2.字符与字节 3.文件操作 一.字符编码 了解: cpu:将数据渲染给用户 内存:临时存放数据,断电消失 硬盘:永久存放数据,断电后不消失 1.1 什么是编码? 人类能够识 ...

  7. Python全栈开发之路 【第三篇】:Python基础之字符编码和文件操作

    本节内容 一.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 改成三元运算: val = 1 if 条件成 ...

  8. Python基础之字符编码,文件操作流与函数

    一.字符编码 1.字符编码的发展史 阶段一:现代计算机起源于美国,最早诞生也是基于英文考虑的ASCII ASCII:一个Bytes代表一个字符(英文字符/键盘上的所有其他字符),1Bytes=8bit ...

  9. python基础——6(字符编码,文件操作)

    今日内容: 1.字符编码: 人识别的语言与机器识别的语言转化的媒介 *****     2.字符与字节: 字符占多少字节,字符串转化 ***     3.文件操作: 操作硬盘中的一块区域:读写操作  ...

随机推荐

  1. 「题解」:07.18NOIP模拟赛T1:星际旅行

    问题 A: 星际旅行 时间限制: 1 Sec  内存限制: 256 MB 题面 题面谢绝公开. 考试心路历程 拿到这道题感觉很懵逼,所以先搞的T2和T3,最后码了个暴力,结果还不如直接输出‘0’得分高 ...

  2. springboot+mybatis+达梦数据库

    准备工作: 首先,安装达梦6数据库.安装完之后如下建表 然后,很重要的一点(写法一定要这样写,否则无限报错) 达梦数据库查表方式: select  *  from    "库名". ...

  3. JavaScript中字符串类型

    字符串类型 字符串介绍 这是程序里面使用最为广泛的一-种类型.在JavaScript里面, 可以使用单引号,也可以使用双引号: 字符串这种数据类型非常霸道,它和其他数据类型相加都会被转换后才为字符串类 ...

  4. intrinsicContentSize和Content Hugging Priority

    Mgen | 首页 | | 发新文章 | 联系 | 订阅  | 管理 iOS: 在代码中使用Autolayout (2) - intrinsicContentSize和Content Hugging ...

  5. 02-认识js

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. MFC中使用FLASH相关

    出自http://my.oschina.net/ypimgt/blog/62573 一.准备工作 第一步:下载并安装Adobe Flash Player. 从官方网站(http://get.adobe ...

  7. MyEclipse设置 web访问根路径

    使用鼠标右键点击项目(点击属性properties)进入如下图:

  8. [BZOJ2164]采矿【模拟+树链剖分+线段树】

    Online Judge:Bzoj2164 Label:模拟,树链剖分,线段树 题目描述 浩浩荡荡的cg大军发现了一座矿产资源极其丰富的城市,他们打算在这座城市实施新的采矿战略.这个城市可以看成一棵有 ...

  9. odoo 基本知识

    http://127.0.0.1:8369/web/database/managerhttp://127.0.0.1:8369/web/database/selectorhttp://127.0.0. ...

  10. Lucene 评分机制二 Payload

    这里使用的Lucene4.7.0和Lucene3.X稍有不同 有下面三段内容,我想对船一系列的搜索进行加分 bike car jeep truck bus boat train car ship bo ...