Python基础-DAY16
二进制文件:
二进制文件是以字节(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相关推荐
- 享学课堂python基础学习day16之类和对象
我是一个22年8月加入享学课堂的学生,主要学习python基础和爬虫课程,学到现在,发现以前的学习知识容易忘记,听了老师的建议之后,决定在CSDN写博客,可以复习自己学过的知识,今天分享类和对象学习了 ...
- Day20 Python基础
系列文章目录 Day01 软件测试基础总结 Day02 测试用例知识点总结(上) Day03 测试用例知识点总结(下) Day04 禅道-从安装到卸载 Day05 MySql的基础使用 Day06 M ...
- Python基础学习大纲(20天速成)-第四篇
一.前言 今天和大家分享一套python基础的学习路线,从入门到掌握.学完能用python解决90%逻辑上的问题.在这之前大家可以购买<python从入门到实践>第二版(这里并不是打广告昂 ...
- python基础之 序列化,os,sys,random,hashlib
1.序列化 什么是序列化? 是将对象的状态信息转化为可以存储或传输的过程. 简单来说序列化就是一种用来处理对象流的机制.所谓对象流也就是将对象的 内容进行流化,流的概念这里不用多说(就是I/O).我们 ...
- f是一个python内部变量类型,Python基础变量类型——List浅析
Python使用list 一.list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示 ...
- python 等号报错_Python学习----Python基础
Python基础 一.数据类型和变量 1.在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量. 例如: a =520# a是整数prin ...
- python基础——继承与派生、组合
python基础--继承与派生 1 什么是继承: 继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类成为基类或超累,新建的类成为派生类或子类 1.1 继承分为:单 ...
- Python学习笔记1 Python基础
第1章 Python基础 1.1 Python概述及版本介绍 1.Python是一种面向对象的解释型计算机程序设计语言(解释型语言源代码->解释器逐行解释每一句源代码) 2.优点:高级语言.可移 ...
- python基础---元组、字典、函数、文件、异常
文章目录 python基础---元组.字典.函数.文件.异常 Tuple(元组) 常用操作 dict(字典) 函数 文件 异常 python基础-元组.字典.函数.文件.异常 Tuple(元组) tu ...
最新文章
- java.vm.info_深入理解java虚拟机
- C++(七)——多态
- go 项目 cmd目录_Golang 项目布局浅析
- SpringBoot实现Java高并发秒杀系统之DAO层开发(一)
- Linux中高斯分布的参数设置,华为openGauss 配置操作系统参数
- 网络编程+Python
- Android入门(11)| 全局广播与本地广播
- 严重的 iOS 漏洞可导致拒绝服务或任意代码执行,苹果已修复
- 竞价这种方式适合不适合GPU云服务器,怎么买更划算??
- 《HFSS电磁仿真设计从入门到精通》一1.3 HFSS工程的通用设置
- Go语言之进阶篇请求报文格式分析
- 自动化测试Linux和fio,一种基于fio实现的SSD性能自动化测试方法与流程
- Intent.parseUri()详解
- PageBarHelper(数字页码条帮助类)
- 烈日炎炎,向亲爱的爸爸说声辛苦了
- 基音提取之短时自相关法
- 电商用户价值分析——基于RFM模型、KMeans聚类
- Goby内测版1.8.292|后台扫描、导出截图等功能上线(文末福利等你~)
- 「可口可乐 + Zion」7天上线小程序是如何做到的?
- 公司建网站多少钱?【网站多少钱】
热门文章
- webAPP开发三:实现数据的交互显示
- 福慧双修(both)
- 《Java小子怒闯数据结构九重天》第二重天——字符串
- linux如何访问公司网盘,Linux部署私有企业网盘
- python 内置属性__setattr___python 属性四种管理方法property,descriptor, __get/setattr__, __getatribute __...
- week 4 hw TT的神秘礼物 二分答案
- SecureCRT8.0X 高亮配色方案
- 【网络流24题】太空飞行计划问题
- java学到能看懂代码_一篇文章能够看懂基础源代码之JAVA篇
- sap 服务器 拷贝文件,本文示例如何使用SAP FTP Function将文件从应用服务器传输到另外一个FTP服务器上。...