Python学习-day10


参考:北京尚学堂·百战程序员

文件操作(IO 技术)

一个完整的程序一般都包括数据的存储和读取;我们在前面写的程序数据都没有进行实
际的存储,因此python 解释器执行完数据就消失了。实际开发中,我们经常需要从外部存
储介质(硬盘、光盘、U 盘等)读取数据,或者将程序产生的数据存储到文件中,实现“持
久化”保存。

文本文件和二进制文件

按文件中数据组织形式,我们把文件分为文本文件和二进制文件两大类。

  1. 文本文件
    文本文件存储的是普通“字符”文本,python 默认为unicode 字符集(两个字节表示一个字符,最多可以表示:65536 个),可以使用记事本程序打开。但是,像word 软件编辑的文档不是文本文件。
  2. 二进制文件
    二进制文件把数据内容用“字节”进行存储,无法用记事本打开。必须使用专用的软件解码。常见的有:MP4 视频文件、MP3 音频文件、JPG 图片、doc 文档等等

文件操作相关模块概述

在这里插入图片描述

创建文件对象open()

在这里插入图片描述

文本文件的写入

基本的文件写入操作

文本文件的写入一般就是三个步骤:

  1. 创建文件对象
  2. 写入数据
  3. 关闭文件对象
    在这里插入图片描述

常用编码介绍

常用编码之间的关系如下:
在这里插入图片描述

ASCII

全称为American Standard Code for Information Interchange,美国信息交换标准代码,这是世界上最早最通用的单字节编码系统,主要用来显示现代英语及其他西欧语言。
ASCII 码用7 位表示,只能表示128 个字符。只定义了27=128 个字符,用7bit 即可完全编码,而一字节8bit 的容量是256,所以一字节ASCII 的编码最高位总是0。
0~31 表示控制字符如回车、退格、删除等;32~126 表示打印字符即可以通过键盘输入并且能显示出来的字符;其中48~57 为0 到9 十个阿拉伯数字,65~90 为26 个大写英文字母,97~122 号为26 个小写英文字母,其余为一些标点符号、运算符号等,具体可以参考ASCII 标准表(大家自行百度,不在此
赘述)。

ISO8859-1

ISO-8859-1 又称Latin-1,是一个8 位单字节字符集,它把ASCII 的最高位也利用起来,并兼容了ASCII,新增的空间是128,但它并没有完全用完。
在ASCII 编码之上又增加了西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号,它是向下兼容ASCII 编码

GB2312,GBK,GB18030

  • GB2312
    GB2312 全称为信息交换用汉字编码字符集,是中国于1980 年发布,主要用于计算机系统中的汉字处理。GB2312 主要收录了6763 个汉字、682 个符号。
    GB2312 覆盖了汉字的大部分使用率,但不能处理像古汉语等特殊的罕用字,所以后来出现了像GBK、GB18030 这种编码。
    GB2312 完全兼容ISO8859-1。
  • GBK
    全称为Chinese Internal Code Specification,即汉字内码扩展规范,于1995 年制定。
    它主要是扩展了GB2312,在它的基础上又加了更多的汉字,它一共收录了21003
  • GB18030
    现在最新的内码字集于2000 年发布,并于2001 年强制执行,包含了中国大部分少数民族的语言字符,收录汉字数超过70000 余个。
    它主要采用单字节、双字节、四字节对字符编码,它是向下兼容GB2312 和GBK 的,虽然是我国的强制使用标准,但在实际生产中很少用到,用得最多的反而是GBK 和GB2312。

Unicode

在这里插入图片描述

UTF-8

在这里插入图片描述

中文乱码问题

windows 操作系统默认的编码是GBK,Linux 操作系统默认的编码是UTF-8。当我们用open()时,调用的是操作系统打开的文件,默认的编码是GBK。
在这里插入图片描述
在这里插入图片描述

write()/writelines()写入数据

在这里插入图片描述

close()关闭文件流

在这里插入图片描述

with 语句(上下文管理器)

在这里插入图片描述

文本文件的读取

在这里插入图片描述

二进制文件的读取和写入

在这里插入图片描述

文件对象的常用属性和方法

在这里插入图片描述

文件任意位置操作

在这里插入图片描述

使用pickle 序列化

在这里插入图片描述

CSV 文件的操作

在这里插入图片描述

csv.reader 对象和csv 文件读取

在这里插入图片描述

csv.writer 对象和csv 文件写入

在这里插入图片描述

os 和os.path 模块

os 模块可以帮助我们直接对操作系统进行操作。我们可以直接调用操作系统的可执行文件、命令,直接操作文件、目录等等。在系统运维的核心基础。

os 模块-调用操作系统命令

在这里插入图片描述

os 模块-文件和目录操作

在这里插入图片描述

os.path 模块

在这里插入图片描述

walk()递归遍历所有文件和目录

在这里插入图片描述

shutil 模块(拷贝和压缩)

shutil 模块是python 标准库中提供的,主要用来做文件和文件夹的拷贝、移动、删除等;还可以做
文件和文件夹的压缩、解压缩操作。
os 模块提供了对目录或文件的一般操作。shutil 模块作为补充,提供了移动、复制、压缩、解压等操
作,这些os 模块都没有提供。

递归算法

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值