python基础 第十节

文件操作

把文件分为文本文件和二进制文件两大类

数据库底层也是文件 需要IO操作

文本文件 默认是unicode字符集(两个字节表示一个字符)

二进制文件,把数据内容用字节进行存储,必须使用专用软件解码

python文件操作模块 io模块 os模块 等

创建文件对象open()

open(文件名[,打开方式])

对象来代表文件 通过io流同步到实际文件对象里面

打开方式有如下几种:r读模式 w写模式 a追加模式 b二进制模式  +读写模式

没有增加模式b 则默认创建的是文本文件对象 处理的基本单元是字符 b模式床架你得是二进制文件对象处理的基本单元是字节

文件写入

三个步骤:创建文件对象 写入数据 关闭文件对象(f.close())

编码方式

编码和解码方式不一样 会导致乱码 一般项目都是utf-8 python项目默认使用unicode 实际存储可能是gbk也可能是utf-8  linux默认编码是utf-8  windows默认gbk

文本文件读取

一般如下三个方法:

(1)read([size]) 从文件中读取size个字符,并作为结果返回,如果没有size参数读取整个文件,督导文件末尾返回空字符串

(2)readline() 读取一行内容返回

(3)readlines() 每一行作为一个字符串存入列表中,返回该列表

enumerate() 函数 

枚举函数  把每一个元素都和索引关联起来

列表推导式 可以减少很多代码量,相对于其他编程语言

二进制文件的读写

模式加b  wb ab rb

读取图片

with open("aa.gif","rb") as f:
    with open("aa_copy.gif","wb") as w:
        for line in f.readlines():
            w.write(line)
print("图片拷贝完成")

文件对象常用方法和属性

属性 name mode closed 

打开模式 r w a b +

常用方法 seek(offset[,whence])  把文件指针移动到新的位置,offset标识相对于whence的位置,

字节的偏移量offset: off 为正往结束方向移动,为负往开始方向移动

whence不同的值代表不同含义,0 从文件头开始计算 1从当前位置开始计算 2从文件为开始计算

tell() 返回文件指着您的当前位置

使用pickle 序列化

序列化指的是:将对象转化成串行化数据形式,存储到硬盘或通过网络传输到其他地方,反序列化指的是相反的过程,将读取到的串行化数据转化成对象

pickle.dump(obj,file) obj是要被序列化的对象,file指的是存储的文件

pickle.load(file) 从file读取数据,反序列化成对象

序列化之后再反序列化形成了新的对象

CSV文件的操作

csv 是逗号分隔符文本格式,用于数据交换

值没有类型,所有值都是字符串

不能指定字体颜色等样式,不能指定单元格的宽度高度,不能合并

没有多个工作表,不能嵌入图像图标

python csv模块

a = csv.reader(f)

a.writer(f)

a.writerow

os os.path模块

直接对操作系统进行操作,我们可以直接调用操作系统的可执行文件、命令、直接操作文件、目录等

os文件目录操作

常用操作文件的方法  remove rename stat listdir

os.path模块提供了目录相关(路径判断 路径切分 路径链接 文件夹遍历)

os.walk()方法 返回三个元素的元组(dirpath,dirnames,filenames)

dirpath 列出指定目录的路径

dirnames:目录下的所有文件夹

filenames:目录下的所有文件

shutil 模块(拷贝和压缩)

主要用来做文件和文件夹的拷贝、移动、压缩解压缩 作为os模块的补充

zipfile 压缩解压缩

你可能感兴趣的:(python基础,python,pycharm)