zoukankan      html  css  js  c++  java
  • 字符编码及文件执行

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

       任何一个程序想要运算,必选现有硬盘加载到内存,然后cpu去内存取指执行。

    2.python解释器运行一个py文件(xxx.py)步骤

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

       2.将xxx.py以普通文本形式读到内存

       3.python读取文件内容,识别python语法,执行相应操作。

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

    一、字符编码

       字符编码针对的是文字,那也就意味着这里不需要考虑视频文件、音频文件等其他文件。意思是,字符吗只跟文本文件有关。人在操作计算机的时候输入的是人能看懂的字符,但是计算机智能识别010101这样的二进制数字。

    1.字符编码表

    就是字符与数字的对应关系

    ASCII码表

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

    0000 0000

    1111  1111

    GBK

    用2Bytes表示一个中文字符,还可以用1Bytes表示一个英文字符

    2.万国码unicode

    统一用2Bytes表示所有字符

    a0000 0000 0010 1010

    1.浪费存储空间

    2.io次数增减,程序运行效率降低(致命)

    当内存中的unicod编码格式数据存到硬盘的时候,会按照utf-8编码

    会将unicode的英文字符由原来的2Bytes变成1Bytes

    现在的计算机

    内存都是unicode

    硬盘都是utf-8

    3.unico的两个特点

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

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

    4.数据由内存保存到硬盘

    1.内存中的unico格式二进制数字  >>>编码(encode)>>>  utf-8格式的二进制数据

    5.硬盘中的数据由硬盘读到内存

            1.硬盘中的uft-8格式的二进制数据 >>>解码(decode)>>> 内存中unicode格式的二进制数据

    6.pycharm终端用的是utf-8格式

    7.windows终端采用的是gbk

    总结:

    x = ‘牛’

    res1 = x.encode('utf-8') #将unicode编码成utf-8的二进制数据

    res2 = res1.decode('utf-8')#将硬盘中的utf-8格式的二进制数据解码成unicode

    二、文件执行

    1.什么是文件?

    操作系统提供给用户操作复杂硬件的简易接口

    2.为什么操作文件?

    人或者应用程序需要永久的保存数据

    3.通过python代码操作文件

    f = open(r'D:xxxxxxxxxxx') #向操作系统发送请求,打开某个文件(‘r’用来取消转义)

    应用程序想要操作计算机硬件,必须通过操作系统来简洁的操作

    4.操作流程

    f = open(r'D:xxxxxxxxxxx') 

    print(f,read()) #windows操作系统默认的编码是gbk

    f.read()#向操作系统转发请求,读取文件内容

    f.closed()#告诉操作系统,关闭打开的文件

    5.打开多文件

    ith open(r'D:Python项目day07a.txt',encoding='utf-8') as f ,

    open(r'D:Python项目day07.txt',encoding='utf-8') as f1: # f仅仅是一个变量名 你把它看成

    一个遥控器

    print(f)

    print(f.read())

    print(f1)

    print(f1.read())

    6.文件处理模式

    1.r模式

    with open(r'D:ZJzzj.txt',mode = 'r',encoding= 'utf-8') as f: #mode参数可以不加,不写的话默认是文本文件,t不写默认就是t

    可读、不可写

    with open(r'D:ZJzzj.txt',mode = 'rb',encoding= 'utf-8') as f:

    以二进制的形式读出

    r模式在打开的文件不存在的情况下,会直接报错。

    2.w模式

    w模式:w模式一定要慎用

    1.文件不存在的情况下,自动创建该文件

    2.当文件存在时,会清空该文件内容后再写入

    with open(r'xxx.txt',mode='w',encoding='utf-8') as f:

    还可以以列表形式写入:

    # l = ['xxx','xxx,'xxx']

    f.writelines(l)

    3.a模式

    1.当文件不存在的情况下,自动创建该文件

    2.当文件存在的情况下,不会清空文件内容,文件的光标会移动到文件的最后,添加新内容。

    with open(r'yyy.txt',mode='a',encoding='utf-8') as f:

     

     

     

       

  • 相关阅读:
    电脑分辨率与pc端页面布局
    webpack打包优化并开启gzip
    JS继承实现的几种方式
    angular项目使用Swiper组件Loop时 ng-click点击事件失效处理方法
    浅谈JSONP (vue-jsonp组件 XXXtoken:报错处理)
    vue项目webpack打包后图片路径错误
    页面渲染过程详解
    vscode调试html页面,及配置说明
    跨域请求cookie获取与设置问题
    HTTP 错误 500.21
  • 原文地址:https://www.cnblogs.com/spencerzhu/p/11140671.html
Copyright © 2011-2022 走看看