二进制文件:
  二进制文件是以字节(byte) 为单位存储的,不以换行符(\n)为单位进行区分内容的文件读写方法

打开模式mode:
  'b'

方法:
  F.read()返回类型:
    对于文本文件,F.read()返回类型为字符串(str)
    对于二进制文件,F.read()返回类型为字节串(bytes)
  F.write(x) 用于文本/二进制文件的写
  F.tell() 返回当前文件流的绝对位置
  F.seek(offset, whence=0)  改变数据流的位置,返回新的绝对位置
  F.readable()  判断文件是否可读,可读返回True,否则返回Flase
  F.writeable() 判断文件是否可写。可写返回True,否则返回False
  F.flush()  把写入文件对象的缓存内容写入到磁盘

F.seek方法:
  F.seek(偏移量, whence=相对位置)
    偏移量:
      大于0的数代表向文件末尾方向移动
      小于0代表向文件头方向移动
    相对位置:
      0 代表从文件头开始偏移
      1 代表从当前读写位置开始偏移
      2 代表从文件尾开始偏移

字节串(也叫字序列) bytes
作用:
  存储以字节为单位的数据
  字节串是不可变的字节序列
说明:
  字节是0~255之间的整数(0b11111111, 0b00000000)

创建空字节串 :
   B = b''      # 空字节串
   B = B""
   B = bytes()  # B 为空字节串
创建非空的字节串:
   B = b"ABCD"
   B = b'ABCD'
   B = b'''ABCD'''
   B = b'\x41\x42'

字节串的构造(创建)函数 bytes
  bytes()   创建一个空字节串, 等同于b''
  bytes(整型可迭代对象)  用可迭代对象初始化一个字节串(数值必须是0~255的整数)
  bytes(整数n)  生成n个值为0的字节串
  bytes(字符串, encoding='utf-8') 用字符串转换编码生成一个字节串

示例:
  B = bytes(range(0x41, 0x41+26)) # b'ABCD...'
  B = bytes(4)  # b'\x00\x00\x00\x00'
  B = bytes("hello", 'ascii')  b'hello'
  B = bytes("中文", 'utf-8')  # b'\xe4\xb8\xad\xe6\x96\x87'

字节串的运算:
  +   +=   *   *=
  比较运算:  < <= > >= == !=
  in /not in 运算符
  索引 index / 切片 slice

b'ABCD'  --> (0x41, 0x42, 0x43, 0x44)

字节数组 bytearray
  可变的字节序列,相当于bytes的可变版本

创建函数bytearray
   bytearray()
   bytearray(整型可迭代对象)
   bytearray(整数n)
   bytearray(字符串, encoding='utf-8')

运算操作:
  同字节串完全相同
  字节数组可以通过索引和切片赋值来改变原字节数组
例:
  ba = bytearray(b"ABCDE")
  ba[0] = 0x61  # 'a'
  print(ba)  # bytearray(b'aBCDE')
  ba[1:] = bytearray(b'bcde')  # bytearray(b'abcde')
  B = bytes(ba)  # 转为字节串
  ba2 = bytearray(B)  # 转为字节数组

bytearray方法 :
B.clear()  清空
B.append(n)  追加一个字节(n为0~255的整数)
B.remove(value)  删除第一个出现的字节,如果没有则产生ValueError错误
B.reverse()  字节顺序进行反转
B.decode(encoding='utf-8')  转为字符串
B.find(sub[, start[,end]]) 查找子字节串

bytes/bytearray与str 的区别:
   bytes/bytearray 存储字节(0~255)
   str 存储unicode字符(0~65535)

bytes与str转换:
   str ---> bytes
      b = s.encode(encoding='utf-8')
  bytes---> str
      s = b.decode(encoding='utf-8')

标准输入输出文件:
    sys.stdin   标准输入文件
    sys.stdout  标准输出文件
    sys.stderr  标准错误输出文件
  模块名:sys

说明:
  每一个python程序启动后都会能以上三个已经打开的文件供我们使用

Linux 下输入 Ctrl+d 输入文件结束符
Windows 下输入 Ctrl+z  文件结束

输入重定向
  输入重定向的内容将发送给sys.stdin
用法:
  $ python3 sys_std.py < 输入文件

汉字编码
问题:
  十字汉字是多少个字节?
  答: GBK(20个字节)/ UTF-8(30个字节)

常用编码:
  国标系列: GB18030(GBK(GB2312))
      (windows常用)
  国际标准: UNICODE <---> UTF-8  
      (Linux / Mac OS X / IOS / Android等常用)

GB2312-80编码:
  1980年发布
  两个字节进行编码,编码范围(A1A1-FEFE)
  含有6763个汉字和682个字符

GBK编码:
  1995年制订
  用两字节编码(8140~FEFE)
  完全兼容GB2312,共21003个汉字(汉文,蒙文等)

GB18030-2005 编码:
   2005年制订共27533个汉字
   用两个字节和四字节进行编码
     两字节与GBK相同
    四字节:
      略

UNICODE16编码(0x0000 ~ 0xFFFF)

UTF-8编码 (8-bit Unicode Transformation Format)
  UNICODE  <<---->> UTF-8互转
  0000~007F  一字节(ASCII)
  0080~07FF  二字节
  0800~FFFF  三字节(汉字落在此区)

UNICODE编码:
  UNICODE16(两字节)
  UNICODE32(四字节编码)

Python 编码(encode)字符串:
  'gb2312'
  'gbk'
  'gb18030'
  'utf-8'
  'ascii'

Python基础-DAY16相关推荐

  1. 享学课堂python基础学习day16之类和对象

    我是一个22年8月加入享学课堂的学生,主要学习python基础和爬虫课程,学到现在,发现以前的学习知识容易忘记,听了老师的建议之后,决定在CSDN写博客,可以复习自己学过的知识,今天分享类和对象学习了 ...

  2. Day20 Python基础

    系列文章目录 Day01 软件测试基础总结 Day02 测试用例知识点总结(上) Day03 测试用例知识点总结(下) Day04 禅道-从安装到卸载 Day05 MySql的基础使用 Day06 M ...

  3. Python基础学习大纲(20天速成)-第四篇

    一.前言 今天和大家分享一套python基础的学习路线,从入门到掌握.学完能用python解决90%逻辑上的问题.在这之前大家可以购买<python从入门到实践>第二版(这里并不是打广告昂 ...

  4. python基础之 序列化,os,sys,random,hashlib

    1.序列化 什么是序列化? 是将对象的状态信息转化为可以存储或传输的过程. 简单来说序列化就是一种用来处理对象流的机制.所谓对象流也就是将对象的 内容进行流化,流的概念这里不用多说(就是I/O).我们 ...

  5. f是一个python内部变量类型,Python基础变量类型——List浅析

    Python使用list 一.list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示 ...

  6. python 等号报错_Python学习----Python基础

    Python基础 一.数据类型和变量 1.在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量. 例如: a =520# a是整数prin ...

  7. python基础——继承与派生、组合

    python基础--继承与派生 1 什么是继承: 继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类成为基类或超累,新建的类成为派生类或子类 1.1 继承分为:单 ...

  8. Python学习笔记1 Python基础

    第1章 Python基础 1.1 Python概述及版本介绍 1.Python是一种面向对象的解释型计算机程序设计语言(解释型语言源代码->解释器逐行解释每一句源代码) 2.优点:高级语言.可移 ...

  9. python基础---元组、字典、函数、文件、异常

    文章目录 python基础---元组.字典.函数.文件.异常 Tuple(元组) 常用操作 dict(字典) 函数 文件 异常 python基础-元组.字典.函数.文件.异常 Tuple(元组) tu ...

最新文章

  1. java.vm.info_深入理解java虚拟机
  2. C++(七)——多态
  3. go 项目 cmd目录_Golang 项目布局浅析
  4. SpringBoot实现Java高并发秒杀系统之DAO层开发(一)
  5. Linux中高斯分布的参数设置,华为openGauss 配置操作系统参数
  6. 网络编程+Python
  7. Android入门(11)| 全局广播与本地广播
  8. 严重的 iOS 漏洞可导致拒绝服务或任意代码执行,苹果已修复
  9. 竞价这种方式适合不适合GPU云服务器,怎么买更划算??
  10. 《HFSS电磁仿真设计从入门到精通》一1.3 HFSS工程的通用设置
  11. Go语言之进阶篇请求报文格式分析
  12. 自动化测试Linux和fio,一种基于fio实现的SSD性能自动化测试方法与流程
  13. Intent.parseUri()详解
  14. PageBarHelper(数字页码条帮助类)
  15. 烈日炎炎,向亲爱的爸爸说声辛苦了
  16. 基音提取之短时自相关法
  17. 电商用户价值分析——基于RFM模型、KMeans聚类
  18. Goby内测版1.8.292|后台扫描、导出截图等功能上线(文末福利等你~)
  19. 「可口可乐 + Zion」7天上线小程序是如何做到的?
  20. 公司建网站多少钱?【网站多少钱】

热门文章

  1. webAPP开发三:实现数据的交互显示
  2. 福慧双修(both)
  3. 《Java小子怒闯数据结构九重天》第二重天——字符串
  4. linux如何访问公司网盘,Linux部署私有企业网盘
  5. python 内置属性__setattr___python 属性四种管理方法property,descriptor, __get/setattr__, __getatribute __...
  6. week 4 hw TT的神秘礼物 二分答案
  7. SecureCRT8.0X 高亮配色方案
  8. 【网络流24题】太空飞行计划问题
  9. java学到能看懂代码_一篇文章能够看懂基础源代码之JAVA篇
  10. sap 服务器 拷贝文件,本文示例如何使用SAP FTP Function将文件从应用服务器传输到另外一个FTP服务器上。...