• 字符编码相关

    • 什么是字符编码
    • 字符编码的类型
    • 字符编码的使用
    • python2和python里字符编码的区别
  • 文件的相关

    • 文件的基础操作
    • 打开文件的模式

字符编码

  • 什么是字符编码
    在计算机里只识别二进制,为了方便人类的理解,出现了ASCII等编码格式,方便人们阅读理解。

  • 字符编码的类型

    • ASCII编码
      在计算机发展的初期没有考虑到计算机的极速发展,所以考虑到英文的支持使用了ASCII编码,在ASCII理一个bytes代表一个字符,1bytes=8bit,8bit可以表示0-2**81种变化,即可以表示256个字符
    • GBK等编码
      为了满足其他国家,各个国家开始定制了自己的编码,日本把日文编到Shift_JIS里,韩国吧韩文编到了Euc-kr里,而中国把汉子编到了gbk里,在GBK:2Bytes代表一个字符
    • Unicode--->utf-8
      因为在各国都有自己的标准,他们互相并不支持,所以在多语言混合的文本中,就会显示出乱码,为了支持各个国家的混合文本,而产生了unicode,在unicode统一用2Bytes代表一个字符,2**16-1=65535,可代表6万多个字符,因而号称兼容万国语言,听起来挺不错的但是聪明的读者应该发现了对于英文字符如果用2Bytes存的话会造成大量的存储空间浪费,于是产生了UTF-8,对英文字符只用1Bytes表示,对中文字符用3Bytes
    • unicode和utf-8你用谁?
      所有的程序,最终都要加载到内存,程序保存到硬盘不同的国家用不同的编码格式,但是到了内存中为了兼容万国(计算机可以运行任何国家程序的原因)统一用unicode,在unicode和utf-8的选择中选择unicode做内存固定使用,是因为节省计算,虽然浪费了空间。但在网络传输中需要数据稳定高效的传输,于是都转成了utf-8格式
  • 字符编码的使用 

    • 乱码的产生
      文件从内存写进磁盘的操作称为存文件
      文件从硬盘读进内存的操作称为读文件

    • 在存文件的过程中你使用什么编码格式存的,它就在硬盘里以什么编码格式写,而当你在文件中写入日文的时候,你用gbk格式保存的话,它会因为找不到对应的关系而无法保存成功,这样的保存是没有办法在利用的。

    • 读文件时导致的乱码
      当你用gbk打开shift-JIS的编码文件时,会因为找不到适合的对应关系,而现实乱码,这时候你调整。

  • python2与python3的区别

    • 在python2中,str编码后的结果是bytes,unicode字符编码的结果是str/bytes,在python2中默认使用的编码格式是ASCII。
    • 在python3种默认的编码就是unicode,无需加u,字符也会用unicode形式存进新的内存空间中。

文件相关

    • 文件的相关操作

       1 f = open('a.txt','r+',encoding='utf-8')   # 在这行代码中,第一个f是文件句柄,方便你操作文件,open用来调用系统中提供的接口用来操作文件,a.txt是文件的相对路径,如果文件不在当前路径会报错,如果需要打开绝对路径下的文件在windows下记得转义\路径,r+表示读写的模式打开文件,encoding表示打开文件时候用什么格式。
      2 f.read() # 读取文件的全部内容,这里需要注意的是如果打开的文件过大,会导致系统崩溃的
      3 f.reiadline() #读取文件一行内容,以列表形式显示出来
      4 f.readlines() #读取文件全部内容并以列表形式显示
      5 f.closed() #判断文件是否关闭
      6 f.name() #查看文件名
      7 f.encoding() #查看文件编码
      8 f.readable() #查看文件是否可读
      9 f.writable() #查看文件是否可写
      10 f.write('')  #写入操作,一次写一行,读取写入的时候都是在操作字符串。
      11 f.seek() #移动光标到指定位置,#seek单位是字节。可选参数0从开头开始移动,1当前位置,2末尾
      12 f.tell() #告诉你当前光标的位置
      13 f.truncate() #截断,写操作
      14 f.close() #关闭文件,很重要,不关闭的话会造成内存的浪费。
      15
      16 #打开文件的另一种做法
      17 with open('a.txt','r',encoding='utf-8') as read_f #可打开多个文件,会自动帮你关闭文件
      18
      19 #小案例,修改文件内容
      20 import os
      21 with open('a.txt','r',encoding='utf-8') as read_f,\
      22 open('.a.txt.swap','w',encoding='utf-8') as write_f:
      23 for line in read_f:
      24 if 'alex' in line:
      25 line =line.replace('lao','LAOWANG')
      26 wite_f.write(line)
      27 os.remove('a.txt')
      28 os.rename('.a.txt.swp','a.txt')
    • 打开文件的模式
  • r:只读模式打开,不能修改文件
  • w:写的模式打开会覆盖原文件f,不能读文件
  • a:追加操作
  • r+:读写操作
  • rb:对二进制格式的文件操作
  • wb:对二进制文件写操

python 文件相关知识的更多相关文章

  1. python数组相关知识

    1.np中的reshape函数,可以把矩阵重新划分成m行n列. arange(n)可以把 [0,n-1]装入数组中,一定要注意的是img.reshape()并不会改变原来的数组,所以需要另外新建一个数 ...

  2. python文件相关操作

    Python文件相关操作 打开文件 打开文件,采用open方法,会将文件的句柄返回,如下: f = open('test_file.txt','r',encoding='utf-8') 在上面的代码中 ...

  3. podSpec文件相关知识整理

    上一篇文章整理了我用SVN创建私有库的过程,本文将整理一下有关podSpec文件的相关知识. podSpec中spec的全称是“Specification”,说明书的意思.顾名思义,这是用来描述你这个 ...

  4. 二、python框架相关知识体系

    Django框架 1.django框架.flask框架和Tornado框架的区别? django框架,内置组件多,自身功能强大,是一个大而全的框架,ORM.Admin.中间件.Form.ModelFr ...

  5. 一、python基础相关知识体系

    python基础 a. Python(解释型语言.弱类型语言)和其他语言的区别? 一.编译型语言:一次性,将全部的程序编译成二进制文件,然后在运行.(c,c++ ,go) 运行速度快.开发效率低 二. ...

  6. Python 多线程相关知识学习

    多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进 ...

  7. Appium+Python API相关知识了解

    首先,要先了解,官方Appium API // https://testerhome.com/topics/3144 刚开始的时候,没有看官方API,然后在网上瞎找学习资料,发现python相关的很少 ...

  8. linux学习笔记-文件相关知识

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一.文件属性 在当前用户家目录下以ls -al命令输出为例: -rw-r--r--     1          renren  ...

  9. python文件相关

    文件操作基本流程初探 f = open('chenli.txt') #打开文件 first_line = f.readline() print('first line:',first_line) #读 ...

随机推荐

  1. 一、React Native 搭建开发环境(1)(Mac OS - IOS项目)

    React Native是Facebook推出的一个开发IOS和安卓APP的技术.至于更多的详情,这里不再描述,大家可以自行百度它的定义. 目的: 由于我想在一台电脑上同时开发IOS和Android两 ...

  2. 纳税服务系统【统计图Fusionchart】

    需求 我们在投诉模块中还有一个功能没有实现: 统计:根据年度将相应年度的每个月的投诉数进行统计,并以图表的形式展示在页面中:在页面中可以选择查看当前年度及其前4年的投诉数.在页面中可以选择不同的年度, ...

  3. 《Java从入门到放弃》JavaSE入门篇:练习——单身狗租赁系统

    今天,我们要玩个大的!!! 我们把之前使用数组做的这个单身狗系统改版成数据库版本,并且使用面向对象里面的一些简单思想.如果有不知道这个系统的看官,请跳转到目录页,然后再选择单身狗系统(数组版)先围观五 ...

  4. JS控制台打印星星,总有你要的那一款~

    用JS语句,在控制台中打印星星,你要的是哪一款呢~来认领吧~ 1.左直角星星 效果: 代码: let readline=require("readline-sync"); cons ...

  5. LInux ugo权限详解

    Linux 中的用户和组是用来控制使用者或者进程可以或者不可以使用哪些资源和硬件,是Linux权限控制最基本的方式. 用户和组可以看一下上一章的部分,先来看一下权限. 一.权限概览 在Linux下,使 ...

  6. 不可不知的socket和TCP连接过程

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  7. bzoj4236 JOIOJI hash 模拟

    JOIOJI桑是JOI君的叔叔."JOIOJI"这个名字是由"J.O.I"三个字母各两个构成的. 最近,JOIOJI桑有了一个孩子.JOIOJI桑想让自己孩子的 ...

  8. JavaScript高级(01)

    前端开发工具 1.1. WebStorm介绍和下载 l  介绍 WebStorm是JetBrains 推出的一款强大的HTML5编辑工具,拥有丰富的代码快速编辑,可以智能的补全代码.代码格式化.htm ...

  9. SpringBoot初体验

    1.elipse中创建Springboot项目并启动 具体创建步骤请参考:Eclipse中创建新的Spring Boot项目 2.项目的属性配置 a.首先我们在项目的resources目录下appli ...

  10. 安装CentOS7精简版后的配置工作

    CentOS7完整版有7.7G,太大了下载起来比较费劲,还是下载了精简版,但是精简版安装以后很多命令都没有,还要动手配yum源,按需安装 国内的yum源比较好的就是163的了,配置方法: 1,进入yu ...